Вот кусок кода С #, в котором у меня есть сомнения.Почему использование нестатических элементов в статическом контексте не дает ошибки?
class Program
{
class DOB { int d, m, y; }
int a;
enum Month { jan, feb, mar };
static void Main(string[] args)
{
a = 6; //Showing error
DOB d = new DOB(); //DOB is not static; still no error.
Month m = 0; //Month is non static but not showing error(I know it cannot be static)
Console.WriteLine(m);
Console.ReadKey();
}
}
Назначение для переменной показывает ошибку, потому что он не является статическим членом. В то же время класс DOB и перечисление Месяц также не статичны, но это не ошибка whing.
Вы не _assigning_ значение, вы инициируете новый объект. Regardind your 'enum', вы действительно делаете то же самое: создаете новый член типа' Month'. –