Ich habe ein Wörterbuch:C# - Hinzufügen von Objekten, die Schnittstellen zu einem Wörterbuch implementieren
private Dictionary<Type, IExample> examples;
ich zwei Klassen, die die Schnittstelle implementieren:
public class Example1 : IExample
{
}
public class Example2 : IExample
{
}
ich einen Weg geschaffen habe eine Instanz zu erhalten aus dem Wörterbuch, wenn es existiert, aber ich versuche, einen Weg zu finden, ein neues Objekt zu instantiieren, wenn es nicht existiert.
public T GetExample<T>() where T : IExample
{
// Return the signal if it exists
if (examples.ContainsKey(typeof(T)))
{
IExample value;
if (!examples.TryGetValue(typeof(T), out value))
{
// unable to get value
}
return (T)value;
}
// Stuck on this line here. How exactly do I instantiate a new example if it doesn't exist.
examples.Add(typeof(T), new);
return default(T);
}
Ist so etwas möglich?
Randbemerkung: Ich mag es nicht „Getter“ Methoden, die den Zustand mutieren. Eine 'GetSomething()' Methode sollte nur * das 'Etwas' bekommen, nicht etwas zum Wörterbuch hinzufügen. Ein besserer Name für Ihre Funktion wäre vielleicht 'GetOrCreateExample()' –
Treb