Hallo
.NET-Structs und Klassen haben ja oft ein Empty-Feld, dass einen
leeren Typ zurückgibt, z.b. String::Empty o. Guid::Empty.
Ich möchte meiner Klasse auch so ein Empty-Field spendieren,
mit folgendem Code:
ref class KeyConfig
{
public:
//...
const static initonly KeyConfig^ Empty;
private:
static KeyConfig()
{
Empty = gcnew KeyConfig(true);
}
}
Wie kann ich es erreichen, dass das Empty-Field tatsächlich unveränderbar ist,d.h.
dass öffentliche Membervariablen von KeyConfig nicht veränderbar sind bzw Methodenaufrufe,
wie z.B: SetKey, s.u., auf keinen Effekt haben.
initonly und const bewirken das offensichtlich nicht,
KeyConfig::Empty::SetKey (42)
ändert jedenfalls 'm_nKey', solls aber nicht.
Muss man das ausprogrammieren?
Gruß,
Christoph
ref class KeyConfig
{
public:
//...
SetKey(int nKey) {m_nKey = nKey};
private:
//...
int m_nKey;
}