Dies ist wahrscheinlich eine Anfängerfrage, aber Google hat überraschenderweise keine Antwort geliefert.
Ich habe diese eher künstliche Methode
T HowToCast<T>(T t)
{
if (typeof(T) == typeof(string))
{
T newT1 = "some text";
T newT2 = (string)t;
}
return t;
}
Ich komme aus einem C ++ - Hintergrund und habe erwartet, dass dies funktioniert. Es kann jedoch nicht mit "Typ 'T' kann nicht implizit in Zeichenfolge konvertiert werden" und "Typ 'T' kann nicht in Zeichenfolge konvertiert werden" für beide oben genannten Zuweisungen kompiliert werden.
Ich mache entweder konzeptionell etwas falsch oder habe einfach die falsche Syntax. Bitte helfen Sie mir, das zu klären.
Danke dir!
typeof(T) == typeof(string)
wird zur Laufzeit und nicht zur Kompilierungszeit aufgelöst. Somit ist die folgende Zeile im Block ungültig.