Значение типа 'T' не может быть преобразовано в

Вероятно, это вопрос новичка, но, как ни странно, Google не дал ответа.

У меня есть этот довольно искусственный метод

T HowToCast<T>(T t)
{
    if (typeof(T) == typeof(string))
    {
        T newT1 = "some text";
        T newT2 = (string)t;
    }

    return t;
}

Исходя из опыта C ++, я ожидал, что это сработает. Тем не менее, он не может быть скомпилирован с «Не удается неявно преобразовать тип« T »в строку» и «Не удается преобразовать тип« T »в строку» для обоих вышеперечисленных назначений.

Я либо делаю что-то концептуально неправильно, либо просто у меня неправильный синтаксис. Пожалуйста, помогите мне разобраться с этим.

Спасибо!

Ответы на вопрос(5)

Ваш ответ на вопрос