Meiner Meinung nach ist es völlig sinnlos, eine Eigenschaft wie diese zu definieren, wenn Sie nur einen Wert speichern möchten.
Alles, was Sie hier tun, gibt dem privaten Kontext zwei Möglichkeiten, den gleichen Wert festzulegen. Sie können das _currentTemp-Feld direkt festlegen, oder Sie können die CurrentTemp-Eigenschaft festlegen, die das _currentTemp-Feld festlegt. Wenn Sie mit der Eigenschaft nichts tun, dann benutzen Sie einfach die Standard-get/set wie folgt aus:
public double CurrentTemp { get; set; }
Wenn Sie komplexere Arbeiten in der Eigenschaft tun müssen, dann gehen Sie vor und ein Feld wie folgt definieren. Komplexere Arbeiten wie Bedingungen, Berechnungen oder Erhöhung Ereignisse:
double _currentTempFarenheit;
double _currentTempCelcius;
public double CurrentTemp
{
get
{
if(UseFarenheit)
return _currentTempFarenheit;
else
return _currentTempCelcius;
}
set
{
if(UseFarenheit)
_currentTempFarenheit = value;
else
currentTempCelcius = value;
}
}
Außerdem, wenn Sie den Wert Ihrer Immobilie wollen durch den Konstruktor Ihrer DogTemperature Klasse festgelegt werden, dann sollten Sie die Setter privat machen. Dadurch kann die Eigenschaft nur öffentlich gelesen werden.
public double CurrentTemp { get; private set; }
_ "das sollte automatisch über die Auto-Eigenschaften Funcitonality generiert werden" _ - können Sie erklären, was Sie so denken ließ? – CodeCaster