Как получить доступ к статическому методу в C #? - PullRequest
9 голосов
/ 26 марта 2010

Когда у нас есть статический метод в классе, он получает доступ только к статическим членам и статический метод может получить доступ только с именем класса. Поэтому я не могу получить доступ к статическому методу в моем примере:

class myclass
{
    int i  ; static int j ;
    static void get()
    {
        j = 101;
        Console.WriteLine(j.ToString ());
    }
    public void test()
    {
        i = 11; j = 12;
        Console.WriteLine(i.ToString());
        Console.WriteLine(j.ToString());
    }
}
class Program
{
    static void Main(string[] args)
    {
        myclass clsmyclas = new myclass();
        clsmyclas.test();

        Console.ReadLine();
    }
}

}

Ответы [ 5 ]

9 голосов
/ 26 марта 2010

Вы должны изменить его на

public static void get() 

и доступ к нему с помощью

myclass.get();

Не является экземпляром класса.

5 голосов
/ 26 марта 2010

Ваша проблема проста.По умолчанию для метода static void используется метод доступа private.Просто добавьте либо public или internal перед методом get, и все готово.

Кроме того, лучше не вызывать метод get, чтобы избежать путаницысвойства.

1 голос
/ 26 марта 2010

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

Вы должны указать его как открытый (или внутренний, если вам нужен доступ только в рамках одного проекта), чтобы достичь его:

public static void get()

или

internal static void get()
1 голос
/ 26 марта 2010

Вам нужно сделать myclass.get публичным методом.

0 голосов
/ 26 марта 2010

В ваших статических методах вы можете использовать любой модификатор доступа.

Доступ, конечно, только ограничивает способ его использования вне самого класса.

Однако статические методы не могут использовать ключевое слово this в качестве ссылок на родительский класс.

В зависимости от уровня доступа метода вы можете вызывать метод статически как:

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