Почему я не могу использовать «это». в C # для доступа к моей постоянной класса? - PullRequest
9 голосов
/ 05 апреля 2011

В C # .NET, почему я не могу получить доступ к константам в классе с ключевым словом 'this'?

Пример:

public class MyTest
{
    public const string HI = "Hello";

    public void TestMethod()
    {
        string filler;
        filler = this.HI; //Won't work.
        filler = HI       //Works.
    }
}

Ответы [ 4 ]

14 голосов
/ 05 апреля 2011

Поскольку константы class не являются членами экземпляра; они класс членов. Ключевое слово this относится к объекту, а не к классу, поэтому его нельзя использовать для ссылки на константы класса.

Это применяется независимо от того, обращаетесь ли вы к константе внутри статического или экземпляра метода в вашем классе.

4 голосов
/ 05 апреля 2011

Константы неявно static.

3 голосов
/ 05 апреля 2011

Поскольку константы являются частью класса, вам необходимо использовать имя класса:

filler = MyTest.HI;
2 голосов
/ 05 апреля 2011

Константный элемент неявно статичен.Это означает, что он принадлежит классу, а не членам класса.

...