[英]“An object reference is required for the non-static field, method or property.” while compiling C# code at runtime
[英]Issue with “An object reference is required for the non-static field, method, or property” c#
我正在尝试创建一个具有单个属性的类,该类可以在我的应用程序中全局引用以存储FB访问令牌。 下面的代码是到目前为止我得到的;
public static class FBAccessTokenClass
{
private string _accessToken = "";
public static string FBAccessToken
{
get { return _accessToken; }
set { _accessToken = value; }
}
}
上面的代码给我以下错误:
An object reference is required for the non-static field, method, or property
我是C#的新手,将不胜感激。
只需将字段static
:
private static string _accessToken = "";
您的属性FBAccessToken
是静态属性。
_accessToken
字段是非静态的,它是一个实例字段 。
静态成员不能使用实例成员。
这很有道理:静态成员始终完全有1个副本,但实例成员的0到许多副本之间可能存在。
该错误非常具有描述性。 您正在尝试从静态方法(FBAccessToken)访问非静态字段(_accessToken)。
_accessToken变量属于该类,并且在访问它之前必须将该类实例化为一个对象。
您可以从任何可以访问方法的地方调用FBAccessToken,因为它属于该类型。
使_accessToken静态,或从FBAccessToken中删除静态,并创建FBAccessToken类的实例。
有关静态类和成员的更多信息,请参见http://msdn.microsoft.com/zh-cn/library/79b3xss3(v=vs.80).aspx 。
更改
private string _accessToken = "";
至
private static string _accessToken = "";
关键字static意味着该Veriable不绑定到FBAccessTokenClass类型的对象,而是属于FBAccessTokenClass类型本身。
此外,您确定应该为此使用静态类吗?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.