die folgende generische Klasse zu haben, die entweder string, int, float, long
als Typ enthalten würde:C#: Eine Liste generischer Klassen mit unterschiedlichen Typen deklarieren und verwenden, wie?
public class MyData<T>
{
private T _data;
public MyData (T value)
{
_data = value;
}
public T Data { get { return _data; } }
}
Ich versuche, eine Liste von MyData<T>
zu bekommen, wo jeder Gegenstand verschiedener T
wäre.
Ich mag ein Element in der Lage sein, aus der Liste zuzugreifen und seinen Wert wie im folgenden Code zu erhalten:
MyData<> myData = _myList[0]; // Could be <string>, <int>, ...
SomeMethod (myData.Data);
wo SomeMethod()
wie folgt erklärt:
public void SomeMethod (string value);
public void SomeMethod (int value);
public void SomeMethod (float value);
UPDATE:
SomeMethod()
ist von einer anderen Tier-Klasse Ich habe keine Kontrolle über und SomeMethod(object)
existiert nicht.
Allerdings kann ich nicht scheinen, einen Weg zu finden, den Compiler glücklich zu machen.
Irgendwelche Vorschläge?
Vielen Dank.
Könnten Sie erarbeiten, was Ihr tut Somemethod? Wir können Ihnen vielleicht besser helfen. –
Was SomeMethod tut, ist hier nicht relevant. Ich füge einfach hinzu, dass es keine Definition für SomeMethod (Objekt) gibt. –
Ihr Grunddesign ist fehlerhaft. Ich würde vorschlagen, eine Frage zu stellen, in der Sie die Anforderungen und Ihre Lösung detailliert beschreiben und nach Vorschlägen fragen. – Will