Generics の T から好きな型にキャストする
◆ var str = (string)(object)t;
// T 型の変数 t があります
string s = (string)t;
string s = (string)t;
はエラーです
if(t is string)
{
string s = (string)t;
}
{
string s = (string)t;
}
型チェックしていてもだめです
どうやればいいんだろう と考えていたのですが いったん object キャストすればできました
> T fn<T>(T v) {
. string s = (string)(object)v;
. return (T)(object)s;
. }
> fn("a")
"a"
. string s = (string)(object)v;
. return (T)(object)s;
. }
> fn("a")
"a"
いろんな型を扱う関数で object で受け取るか T で受け取るかで迷っていましたが結局 object 化をしないとだめなら最初から object で受け取ればいいですね