0

型変換を行うメソッドがあります。タイプが渡されたジェネリックタイプと等しい場合、プロセス全体を実行したくありません。これがスニペットです。

    public static T ConvertTo<T>(this object @this)
    {
        if (typeof(T) == @this.GetType())
            return (T)@this;
    }

私はオブジェクト@thisがすでに動作しているように見えるタイプTであるかどうかを確認していますが、これはこれを行うための最良の方法ですか?

4

2 に答える 2

2

IsInstaceOfTypeメソッドとを使用isして、型を確認できます。

public static T ConvertTo<T>(this object @this)
{
    if (@this is T)
       return (T)@this;
    else
       return default(T);
}
于 2012-11-08T10:23:30.103 に答える
0

これもうまくいくかもしれません

public static T ConvertTo<T>(this object @this)
{
    return (T)System.Convert.ChangeType(@this, typeof(T));
}
于 2012-11-08T11:21:56.703 に答える