Ist es sinnvoll, eine Hintergrundeigenschaft/ein Hintergrundfeld als virtuell festzulegen? [geschlossen]
Posted: 15 Jan 2025, 15:14
Ich habe eine vom Entwickler abgeleitete Klasse, die von der Mitarbeiter-Basisklasse erbt.
In meiner abgeleiteten Klasse habe ich eine Override-Eigenschaft das ein Hintergrundfeld verwendet, das von der Basisklasse stammt.
Ich habe zwei Möglichkeiten, es zu tun.
Was ist eine gute Option?
Option 1: Setzen Sie ein Hintergrundfeld auf geschützt.
Option 2: Legen Sie eine unterstützende Eigenschaft als geschütztes virtuelles Objekt fest.
In meiner abgeleiteten Klasse habe ich eine Override-Eigenschaft das ein Hintergrundfeld verwendet, das von der Basisklasse stammt.
Code: Select all
public class Developer : Employee
{
protected override string Name
{
get
{
if (_name == null)
{
// ....
// ....
// ....
_name = "derived_value";
}
return _name;
}
}
}
Was ist eine gute Option?
Option 1: Setzen Sie ein Hintergrundfeld auf geschützt.
Code: Select all
public class Employee
{
protected string _name = null;
protected virtual string Name
{
get
{
if (_name == null)
{
// ....
// ....
// ....
_name = "base_value_1";
}
return _name;
}
}
}
Code: Select all
public class Employee
{
protected virtual string _name { get; set; } = null;
protected virtual string Name
{
get
{
if (_name == null)
{
// ....
// ....
// ....
_name = "base_value_2";
}
return _name;
}
}
}