これはおそらく初心者の質問ですが、グーグルは意外にも答えを提供しませんでした。
私はこのかなり人工的な方法を持っています
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)
はコンパイル時ではなく実行時に解決されます。したがって、ブロック内の次の行は無効です。