"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是非静态的,它是一个实例字段

静态成员不能使用实例成员。

这很有意义:静态成员总是有一个副本,但实例成员可以存在0到多个副本之间。

这个错误是非常描述性的;您正在尝试从静态方法(FBAccessToken)访问非静态字段(_accessToken)。

_accessToken变量属于该类,该类必须被实例化为对象才能访问。

你可以在任何地方调用FBAccessToken,因为它属于这个类型。

将_accessToken设置为静态,或者从FBAccessToken中删除静态并创建FBAccessToken类的实例。

关于静态类和成员的更多信息,请参见http://msdn.microsoft.com/en-us/library/79b3xss3(v=vs.80).aspx

变化

private string _accessToken = "";

private static string _accessToken = "";

static关键字意味着变量没有绑定到FBAccessTokenClass类型的对象,而是属于FBAccessTokenClass类型本身。

此外,您确定应该为此使用静态类吗?

相关内容

最新更新