Hallo Leute, ich habe einige Probleme mit einem Programm in C#. Ich habe den folgenden Code in einer Basisklasse (die über zwei abgeleitete Klassen verfügt, die sich direkt auf _Balance beziehen).C# Vererbung - Hinzufügen von geschützten Membern für abgeleitete Klassen
using System;
namespace BankAccounts
{
class Account
{
protected Account(decimal balance)
{ _Balance = balance; }
private decimal _Balance;
public decimal Balance
{
get { return _Balance; }
}
public override string ToString()
{
return string.Format("Balance: {0:c}", _Balance);
}
}
}
Jetzt weiß ich, weil die _Balance privat, mein Programm kompiliert wird, nicht weil sie nicht zugänglich aufgrund seiner Schutzstufe. Ich weiß auch, dass ich dieser Klasse ein oder mehrere geschützte Mitglieder hinzufügen muss, damit abgeleitete Mitglieder _Balance ändern können. Ich weiß einfach nicht, was der beste Weg ist. Offensichtlich müssen auch direkte Referenzen auf _Balance in abgeleiteten Klassen geändert werden.
Jeder Rat würde sehr geschätzt werden, danke!
Dank Igor, aber es ist eine Frage aus dem Lehrbuch, die speziell darum bittet, _Balance privat zu halten und einen alternativen Weg zu finden, es durch die abgeleiteten Klassen zugänglich zu machen (und zwar durch das Hinzufügen neuer geschützter Mitglieder). – lonewolf2288
@ lonewolf2288 - ok, aktualisiert – Igor
Ihre Antwort (meiner Meinung nach) kann die Frage nicht beantworten, Sie könnten auch '{get; protected set;} 'aber dieser Typ sucht meiner Meinung nach die Implementierung von' Encapsulation' manuell. Und da er 'Textbook' erwähnt hat, ist es wahrscheinlich ein Test oder eine Aufgabe. – Transcendent