Я прочитал много статей о статических полях, которые ** «Статические методы не имеют доступа к полям, которые являются полями экземпляра, поскольку поля экземпляра существуют только в экземплярах типа». **Статические методы не могут использовать поля экземпляра запроса?
Но мы можем создать и получить доступ к полям экземпляра внутри статического класса.
Здесь Вы можете найти код,
class Program
{
static void Main(string[] args)
{
}
}
class clsA
{
int a = 1;
//Static methods have no way of accessing fields that are instance fields,
//as instance fields only exist on instances of the type.
public static void Method1Static()
{
//Here we can create and also access instance fields which we have declared inside the static method
int b = 1;
//a = 2; We get an error when we try to acces instance varible outside the static method
//An object reference is required for the non-static field, method, or property '
Program pgm = new Program();
//Here we can create and also access instance fields by creating the instance of the concrete class
clsA obj = new clsA();
obj.a = 1;
}
}
Это правда «Мы могу получить доступ НЕРАСПРОСТРАНЕНИЯ статических полей внутри статического метода»?
Другой вопрос Если мы объявим класс clsA как статический класс, даже в то время мы не получаем никакой ошибки компиляции, если объявляем поля экземпляра внутри статического метода?
Где я ошибаюсь?
Я согласен. Кроме того, если вы объявляете свой класс clsA статичным, вы не можете создать его с помощью нового ключевого слова, чтобы строка была неудачной. –
Благодаря nvoidgt, вы имеете в виду, что поле экземпляра - это поля, которые создаются с использованием новой переменной (исправьте меня, если я ошибаюсь). Итак, наконец, мы можем сказать, что если вам нужно получить доступ к полям экземпляра какого-либо конкретного класса в статическом методе нестатического класса, мы должны создать экземпляр этого класса? –
Нет, поля экземпляра - это переменные, объявленные внутри класса, но не внутри метода. Интернет действительно не является хорошим средством для объяснения этого, вы можете захотеть получить хорошую книгу ООП и прочитать первые главы. В вашей местной библиотеке будут некоторые. – nvoigt