Вы не можете сделать это, потому что Main()
является статической функцией.Ваши переменные объявлены как переменные экземпляра и доступны только для экземпляра класса Program
.Если вы объявите userChoice
и numbeR
как статические переменные, он скомпилируется.
static string userChoice;
static int numbeR;
static void Main()
{
//your code
}
Статические члены означают, что вы можете использовать член без создания экземпляра класса.Представьте:
public class MyClass
{
public static int StaticInt;
public int NonStaticInt;
}
означает, что вы можете сделать:
MyClass.StaticInt = 12; // legal
MyClass.NonStaticInt = 12; // error, can't staticly access instance member
и все классы будут иметь доступ к этому изменению, поскольку в вашей программе есть только один MyClass.StaticInt
Чтобы изменить NonStaticInt
, вам нужно создать экземпляр этого класса, например:
MyClass mine = new MyClass();
mine.NonStaticInt = 12; // legal
mine.StaticInt = 12; // Error, cannot access static member on instance class.