![](/img/trans.png)
[英]Windows Phone-cannot declare instance members in a static class in C#
[英]Cannot declare instance members in a static class in C#
我有一个public static class
并且尝试从C#中的app.config文件访问appSettings
,但出现标题中描述的错误。
public static class employee
{
NameValueCollection appSetting = ConfigurationManager.AppSettings;
}
我该如何工作?
如果将该类声明为静态的,则所有成员也必须是静态的。
static NameValueCollection appSetting = ConfigurationManager.AppSettings;
您确定要让您的员工类别是静态的吗? 您几乎可以肯定不想要这种行为。 您最好从类和成员中删除静态约束。
它说明了什么意思:
使您的课程成为非静态课程:
public class employee
{
NameValueCollection appSetting = ConfigurationManager.AppSettings;
}
或成员静态:
public static class employee
{
static NameValueCollection appSetting = ConfigurationManager.AppSettings;
}
在静态类中声明实例成员是不合法的。 静态类不能被实例化,因此拥有一个实例成员是没有意义的(它们永远不可访问)。
我知道这篇文章很旧,但是...
我能够做到这一点,但我的问题是我忘记将属性设为静态。
public static class MyStaticClass
{
private static NonStaticObject _myObject = new NonStaticObject();
//property
public static NonStaticObject MyObject
{
get { return _myObject; }
set { _myObject = value; }
}
}
您是否尝试过使用类似于以下内容的“静态”存储类?
public static class employee
{
static NameValueCollection appSetting = ConfigurationManager.AppSettings;
}
正如John Weldon所说,所有成员在静态类中必须是静态的。 尝试
public static class employee
{
static NameValueCollection appSetting = ConfigurationManager.AppSettings;
}
public static class Employee
{
public static string SomeSetting
{
get
{
return ConfigurationManager.AppSettings["SomeSetting"];
}
}
}
还将属性声明为静态。 同样,也不必存储对ConfigurationManager.AppSettings的私有引用。 ConfigurationManager已经是静态类。
如果您认为必须存储对appsettings的引用,请尝试
public static class Employee
{
private static NameValueCollection _appSettings=ConfigurationManager.AppSettings;
public static NameValueCollection AppSettings { get { return _appSettings; } }
}
即使默认值是私有的,也总是提供一个明确的访问说明符(私有,公共等)是一种很好的形式。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.