Jest to prawdopodobnie pytanie nowicjusza, ale Google, co zaskakujące, nie udzieliło odpowiedzi.
Mam tę raczej sztuczną metodę
T HowToCast<T>(T t)
{
if (typeof(T) == typeof(string))
{
T newT1 = "some text";
T newT2 = (string)t;
}
return t;
}
Pochodząc z tła C ++, spodziewałem się, że to zadziała. Jednak kompilacja nie powiodła się z opcją „Nie można niejawnie przekonwertować typu„ T ”na łańcuch” i „Nie można przekonwertować typu„ T ”na ciąg znaków” dla obu powyższych przypisań.
Albo robię coś złego koncepcyjnie, albo po prostu mam złą składnię. Proszę, pomóż mi to rozwiązać.
Dziękuję Ci!
typeof(T) == typeof(string)
jest rozpoznawane w czasie wykonywania, a nie w czasie kompilacji. Dlatego następujący wiersz w bloku jest nieprawidłowy.