[C#] почему я могу получить доступ к полям базового класса только из конструктора производного класса ?
Мне интересно, как работает этот код:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace CSharp_Practicing { class Parent { public string name; public Parent() { Console.WriteLine("Hello from the parent constructor"); } } class Child : Parent { public Child() { Console.WriteLine("Hello from the child constructor"); name = "Bob"; Console.WriteLine("My name is: {0}", name); } } class Program { static void Main(string[] args) { Child c = new Child(); } } }
Также то же самое происходит, если я использую this.name (но как это работает, разве ключевое слово "this" не относится к членам только в (в моем примере) дочернем классе ???)
Но этот код не будет работать:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace CSharp_Practicing { class Parent { public string name; public Parent() { Console.WriteLine("Hello from the Parent constructor"); } } class Child : Parent { name = "Bob"; } class Program { static void Main(string[] args) { Child c = new Child(); } } }
И здесь возникает вопрос, почему он не работает ?
Что я уже пробовал:
Задавая вопрос здесь в CodeProject.com потому что я очень запутался, когда это случилось со мной, и не могу понять, что именно происходит с этим кодом.