Сомнений в статических и статических конструкторов в C#
У меня есть сомнения в статическом и нестатическом конструкторе;
пожалуйста внимательно смотрите следующий пример здесь я объявляю статический и нестатический конструктор и получаю доступ к статическим и нестатическим членам из него
class SampleConstructor { public static int s; public int ns; //creating a static constructor static SampleConstructor() { s = 23; } //Creating a non static constructor public SampleConstructor() { // s = 45; ns = 33; } } class UseSampleConstructor { static void Main(string[] args) { SampleConstructor sc = new SampleConstructor(); Console.WriteLine("{0},{1}" ,sc.ns,SampleConstructor.s); Console.ReadKey(); } }
------------------------------------------------------------------------
результат приведенного выше примера составляет 33,23
что совершенно нормально однако когда я пытаюсь инициализировать статический член класса через нестатический конструктор не изменяя ничего подобного
class SampleConstructor { public static int s; public int ns; //creating a static constructor static SampleConstructor() { s = 23; } //Creating a non static constructor public SampleConstructor() { //here I am initializing static member also s = 45; ns = 33; } } class UseSampleConstructor { static void Main(string[] args) { SampleConstructor sc = new SampleConstructor(); Console.WriteLine("{0},{1}" ,sc.ns,SampleConstructor.s); Console.ReadKey(); } }
теперь в этом случае я получаю выход как 33,45
почему??? несмотря на то, что я все еще обращаюсь к SampleConstructor.s, который является статическим, является членом статического конструктора
кто-нибудь может пожалуйста помочь мне??