Проблема с «Ссылка на объект требуется для нестатического поля, метода или свойства» c # - PullRequest
0 голосов
/ 04 декабря 2011

Я пытаюсь создать класс с одним свойством, на которое можно ссылаться глобально в моем приложении для хранения токена доступа 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 # и любой помощибыл бы признателен.

Ответы [ 3 ]

4 голосов
/ 04 декабря 2011

Просто сделайте поле static тоже:

  private static string _accessToken = "";

Ваша собственность FBAccessToken является статической собственностью.
Поле _accessToken нестатично, это поле экземпляра .

Статический член не может использовать элемент экземпляра.

И это имеет большой смысл: всегда есть ровно 1 копия статического члена, но может существовать от 0 до многих копий экземпляра члена.

1 голос
/ 04 декабря 2011

Ошибка довольно описательная; вы пытаетесь получить доступ к нестатическому полю (_accessToken) из статического метода (FBAccessToken).

Переменная _accessToken принадлежит классу, и экземпляр класса должен быть создан как объект, прежде чем вы сможете получить к нему доступ.

Вы можете вызывать FBAccessToken из любого места, где есть доступ к методу, так как он принадлежит типу.

Либо сделайте _accessToken статическим, либо удалите статический объект из FBAccessToken и создайте экземпляр класса FBAccessToken.

См. http://msdn.microsoft.com/en-us/library/79b3xss3(v=vs.80).aspx для получения дополнительной информации о статических классах и членах.

0 голосов
/ 04 декабря 2011

Изменение

private string _accessToken = "";

до

private static string _accessToken = "";

Ключевое слово static означает, что veriable не привязан к объекту типа FBAccessTokenClass, а скорее относится к самому типу FBAccessTokenClass.

Кроме того, вы уверены, что для этого следует использовать статический класс?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...