Ich versuche, einen T-Wert zurück zu geben.Generische Art Funktion (Eigenschaft)
public T this[int index]
{
get
{
if (typeof(T) == typeof(int))
return (T) dynEx[index].Int;
else if (typeof(T) == typeof(string))
return (T) dynEx[index].Str;
}
}
Dynex ist ein komplexes Objekt, das ein Objekt auf einem gewissen benutzerdefinierten Ausdruck basiert zurückgibt.
Der obige Code funktioniert offensichtlich nicht, weil er einen Fehler hat: "kann den Typ 'int' nicht in T" konvertieren und "den Typ 'string' nicht in T" konvertieren.
Wie kann ich dies ohne Leistungseinbußen erreichen?
Diese Eigenschaft wird mehr als tausend Mal pro Frame aufgerufen (es ist ein Spiel).
Wie ist 'T' bezogen auf den umschließenden Typ? –
Wenn Sie sich nur für 2 Typen interessieren, denke ich, dass eine Strategie, die Überladungen verwendet, sinnvoller wäre als Generika. – juharr