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 回答