0
Ist es möglich, eine Methode in einer Basisklasse zu haben, um Eigenschaften einer abgeleiteten Klasse zu ändern? Ich war so etwas wie dieses Denken:Ändern von abgeleiteten Klassenwerten aus der Basisklasse
public class baseclass
{
public void changeProperties(string propertyName, string newValue)
{
try
{
this.propertyName = newValue;
}
catch
{
throw new NullReferenceException("Property doesn't exist!");
}
}
}
Scheint ein Code-Geruch für mich. Ich würde eine virtuelle Methode in der Basisklasse bevorzugen, um die Änderung vorzunehmen. Es könnte in der Basisklasse leer sein und in abgeleiteten Klassen, die es benötigen, überladen sein. –
Wenn Sie etwas wie "INotifyPropertyChanged" Implementierung tun, ist dies ziemlich üblich. Anstelle von propertyName übergeben Sie die Eigenschaft als Referenz an die Methode. Obwohl Sie es auf den zweiten Blick versuchen, versuchen Sie tatsächlich, den Namen der Eigenschaft neu zu schreiben. Das können/wollen Sie nicht tun. – Jonesopolis