C# 转换对象类型

Sev*_*evi -3 c# casting

如何将对象类型转换为不同类型?

public T Get<T>(T t)
{
    if (t is TypeA)
    {
        TypeA a = (TypeA)t; //error
    }
}
Run Code Online (Sandbox Code Playgroud)

Mat*_*391 6

一种方法是使用as

public T Get<T>(T t)
{
    if(t is TypeA) {
        TypeA a = t as TypeA;
    }
}
Run Code Online (Sandbox Code Playgroud)

另一种是使用Convert

public T Get<T>(T t)
{
    if(t is TypeA) {
        TypeA a = (TypeA) Convert.ChangeType(t, typeof(TypeA));
    }
}
Run Code Online (Sandbox Code Playgroud)