Does auto implemented properties have the same backed field in base and derived classes in C# ? I have the following code:
class Employee
{
public virtual string Infos { get; set; }
}
class Engineer : Employee
{
public override string Infos
{
get
{
//Employee and Engineer share the same backed field.
return base.Infos + " *";
}
}
}
And in the Main class, i have the following code :
class Program
{
static void Main(string[] args)
{
Employee employee = new Engineer { Infos = "Name : Boulkriat Brahim" };
Console.WriteLine ( employee.Infos );
}
}
Compiling and Running this code will print "Boulkriat Brahim *". So base.Info is equal to "Boulkriat Brahim".This mean that this.Info and Base.Info have the same value despite i create an object of type Engineer. Does this mean that they had the same backed field?
Yes, exactly as if you declared the properties manually. There's only one field, and all subclasses inherit it.