2012-04-18 46 views
0

查看對象是否屬於同一類型的最快方法是什麼?查看兩個對象是否屬於同一類型的最快方法

我現在在使用obj1.GetType.Equals(obj2.GetType),但我希望有更快的方法。

+4

這對你是一個性能瓶頸? – Oded 2012-04-18 10:33:28

+0

您是否需要檢查*相同*類型,或者您是否對可賦值感興趣? – AakashM 2012-04-18 10:50:55

+1

@Oded根據分析結果,是的。它經常執行。 – Peladao 2012-04-18 11:32:54

回答

3

好,這樣是最快的:)

但你可以這樣寫:

If obj1.GetType Is obj2.GetType Then 

End If 
+0

謝謝。這使它運行速度提高了21%。 +1 – Peladao 2012-04-18 11:42:53

+0

我已經接受了這個答案,假設它是現在最快的方法。如果有更快的選擇出現,我會將其設置爲接受的答案。 – Peladao 2012-04-20 13:17:02

0

注意,我只知道C#,但希望這個想法將有助於

或者你可以這樣做:

obj1.GetType() == obj2.GetType() 

此外,如果你發現自己使用這個有很多,你可以做一個extension method。像這樣

public static bool IsSameTypeAs(this object source, object comparator) 
{ 
    return source.GetType().Equals(comparator.GetType(); 
} 

// usage 
obj1.IsSameTypeAs(obj2) 
相關問題