Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиПоискОблакоComboВсе проекты

Не получается вызвать нестатическое поле из статического метода

Максим Левашов Ученик (186), закрыт 1 неделю назад
Namespace VCS
{
enum Numbers : Int32
{
First = 1,
Second = 2,
Third = 3,
Fourth = 4,
Fifth = 5,
Sixth = 6,
Seventh = 7
}
class Program
{
Numbers numbers = Numbers.Seventh;
static void Main(string[] args)
{
Console.WriteLine(numbers);
/* Для нестатического поля, метода или свойства Program.numbers требуется ссылка на объект. (this[21, 31]) csharp CS0120 */
}
}
}
Пытаюсь написать перечисление, которое по названию будет выдавать номер дня недели, вот только пока не получается из-за ошибки CSharp0120
Я понял, что невозможно обращаться из статического метода к нестатическому полю, но почему? У всех все работает, это новый стандарт или что?
Лучший ответ
Дед Мазай Гений (50692) 1 месяц назад
Нестатическое поле -- это часть объекта. Статический метод может обраться к таком полю только через ссылку на объект. Например, myObj.numbers, где myObj имеет тип Program.
Без ссылки на объект можно обращаться только к статическим полям.
Максим ЛевашовУченик (186) 1 месяц назад
Так это главный класс, на основе которого не должно быть никаких объектов, да и обращаюсь я к полю этого же класса
Дед Мазай Гений (50692) Максим Левашов, в данном случае это не имеет значения. Логика одна и та же. Нельзя обратиться к полю объекта при отсутствии объекта.
Остальные ответы
Похожие вопросы