2017-01-15 35 views
0

如果兩個變量來自C#中的相同類型,你們能幫我解釋一下如何比較嗎?我已經搜索了幾天的答案,我發現的所有東西都是我已經知道的:使用typeof()和object.GetType()。我以爲這兩個人一起工作就可以解決這個問題,但他們卻沒有。之後,深入研究MS文檔,我明白了爲什麼(typeof()和a.GetType()返回不同的數據),但我會在這裏放置我第一次嘗試的東西。C#如何比較兩個變量是否是相同的類型?

我想是這樣的:

if(varA.GetType() == typeof(varB.GetType())) 
{ 
    //Do something... 
} 

我想是這樣......

if(varB.SameTypeOf(varB)) //In this example returns true because both are type of int 
{ 
    //So something... 
} 

而且,我已經試過的System.Type,但它不是我要找的無論是。

+1

爲什麼周圍的GetType的typeof?但這裏需要真正的說明是爲什麼你需要比較兩種類型? – Steve

+0

要比較2個變量的類型,這應該工作:if(varA.GetType()== varB.GetType()){....}。但是你應該知道varA或varB可以爲null的情況。此外,typeof(varB.GetType())應該是一個編譯錯誤,所以我不知道我得到你要去的地方... –

+0

varA.GetType()== varB.GetType()'? – dasblinkenlight

回答

0

typeof用於從類型名稱中獲取類型對象。在你的情況下,你應該能夠通過a.GetType() == b.GetType()。根據你想要做什麼,你也可以使用a.GetType().IsAssignableFrom(b.GetType())

Type都有達到的事情類似於其他一些有用的方法,你在做什麼:

+0

o.O?我的上帝,我太擔心使用typeof(),我甚至沒有嘗試過: a.GetType()== b.GetType() 謝謝Joey! – BlackCyraxCO

+0

當你有一個類型名稱並且需要'System.Type'時,你確實只需要'typeof'。 '的typeof(INT)'。 – Joey

相關問題