我有一个进行某种类型转换的方法。如果类型等于传递的泛型类型,我不想完成整个过程。这是一个片段。
public static T ConvertTo<T>(this object @this)
{
if (typeof(T) == @this.GetType())
return (T)@this;
}
我正在检查对象@this已经是T类型似乎有效,但这是最好的方法吗?
答案 0 :(得分:2)
您可以使用IsInstaceOfType
方法和is
来检查类型。
public static T ConvertTo<T>(this object @this)
{
if (@this is T)
return (T)@this;
else
return default(T);
}
答案 1 :(得分:0)
这可能也有效
public static T ConvertTo<T>(this object @this)
{
return (T)System.Convert.ChangeType(@this, typeof(T));
}