Ймовірно, це питання початківця, але Google на диво не дав відповіді.
У мене є цей досить штучний метод
T HowToCast<T>(T t)
{
if (typeof(T) == typeof(string))
{
T newT1 = "some text";
T newT2 = (string)t;
}
return t;
}
Виходячи з C ++ фону, я очікував, що це спрацює. Однак він не може компілювати "Неможливо неявно перетворити тип" T "у рядок" та "Неможливо перетворити тип" T "у рядок" для обох вищезазначених призначень.
Я або роблю щось концептуально неправильне, або просто неправильний синтаксис. Будь ласка, допоможіть мені розібратися з цим.
Дякую!
typeof(T) == typeof(string)вирішується під час виконання, а не під час компіляції. Таким чином, наступний рядок у блоці є недійсним.
