Hey, ich denke, ich habe hier die falsche Vorstellung, aber ich bin mir nicht sicher, was das Beste ist. Ich möchte eine Klasse mit einer Mitgliedsvariablen, die von jedem Typ sein kann, abhängig davon, was zu der Zeit benötigt wird. Bisher habe ich so etwas wie diese:Generische Klassenmitglieder in C#?
public class ConfigSetting<T> {
private T value;
public T GetValue() {
return value;
}
public void ChangeValue() {
}
public ConfigSetting(string heading, string key) {
this.value = DerivedMethods.configsettings.SettingGroups[heading].Settings[key].RawValue;
}
}
Der Typ von der rechten Seite der ‚this.value‘ Leitung zurück ist eine Zeichenfolge, die derzeit. Ich weiß, hier scheint es, als ob ich nichts anderes als den Stringtyp verwenden müsste, aber irgendwann werde ich den Konstruktor erweitern, so dass "this.value" ein String, int, float oder bool sein kann.
Wie auch immer, mein Compiler sagt "Kann 'String' nicht in 'T' umwandeln, also nehme ich an, dass ich etwas sehr rückwärts mache.
Vielen Dank.
Danke. Dies kompiliert (obwohl ich es noch testen muss). Ich habe zwei Fragen: 1: Warum muss ich durch Objekt gehen? 2: Was passiert danach, wenn ich versuche, String-Methoden auf Wert zu verwenden? Weiß C# nun, dass der Wert vom Typ String ist? – Xenoprimate
gibt RawValue nicht immer eine Zeichenkette zurück? würde die Konvertierung nach int, long usw. nicht fehlschlagen? – bendewey
Ja, aber wie ich in meiner ursprünglichen Frage gesagt habe, möchte ich den Konstruktor erweitern. – Xenoprimate