4
我使用此擴展方法來轉換項目中的對象。但它無法轉換爲GUID
,因爲它沒有實現IConvertible
接口,但對於轉換,我總是不得不使用new Guid(fooobject)
,但我希望我可以使用此方法將對象轉換爲GUID
。任何想法如何使我們能夠靈活使用GUID
也。擴展方法:如何使它與GUID一起工作
擴展方法是
public static T ToType<T>(this object val, T alt) where T : struct, IConvertible
{
try
{
return (T)Convert.ChangeType(val, typeof(T));
}
catch
{
return alt;
}
}
雖然GUID確實有[自己的TypeConverter](http://msdn.microsoft.com/en-us/library/system.componentmodel.guidconverter),您可以隨時進行特殊情況檢查'typeof(T)''。 ASPX)。您可能需要將'val'轉換爲'string'。否則,請參閱頁面上的示例。 – 2012-08-06 07:03:13
是'TypeConverter'不存在GUID,因爲它是我猜的值類型。我們需要明確地取消裝箱,將其轉換爲GUID。這就是爲什麼我想要使用擴展方法做到這一點... – 2012-08-06 07:06:34
我很確定它仍然會工作..如果'val'是*不* GUID值,那麼你需要轉換它。如果它是一個GUID,你可以用'typeof(T)'檢查來判斷,並直接進行轉換。 – 2012-08-06 07:07:49