Непозволен достъп до нестатично поле от статичен метод – пример
Ако в нашия клас Dog се опитаме да декларираме статичен метод PrintName(), който връща като резултат стойността на нестатичното поле name декларирано в класа:
Съответно компилаторът ще ни отговори със съобщение за грешка, подобно на следното:
An object reference is required for the non-static field, method, or property 'Dog.name'
|
Ако въпреки това, се опитаме в метода да достъпим полето чрез ключовата дума this:
public void string PrintName()
{
// Trying to access non-static variable from static method
Console.WriteLine(this.name); // INVALID
}
|
Компилаторът отново няма да е доволен и този път ще изведе следното съобщение, без да успее да компилира класа:
Keyword 'this' is not valid in a static property, static method, or static field initializer
|
Сподели с приятели: |