Page 1 of 1

Ist es sinnvoll, eine Hintergrundeigenschaft/ein Hintergrundfeld als virtuell festzulegen? [geschlossen]

Posted: 15 Jan 2025, 15:14
by Guest
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.

Code: Select all

public class Developer : Employee
{
protected override string Name
{
get
{
if (_name == null)
{
// ....
// ....
// ....
_name = "derived_value";
}
return _name;
}
}
}
Ich habe zwei Möglichkeiten, es zu tun.
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;
}
}
}
Option 2: Legen Sie eine unterstützende Eigenschaft als geschütztes virtuelles Objekt fest.

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;
}
}
}