2010-06-16 51 views
1

可能重複:
Anonymous Types - Are there any distingushing characteristics?如何找出對象是否爲匿名類型?

無法找到合適的物業。

if(new {a = 2, b= "z"}.GetType()...) 

要放什麼而不是...?

+0

歡迎來到SO,請不要忘記訪問http://stackoverflow.com/faq – Reigel 2010-06-16 06:42:24

+0

據我瞭解,沒有開箱即用的解決方案,在這個問題和http://stackoverflow.com/questions/315146/anonymous-types-are-there-any-distingushing-characteristics中提供的所有答案聽起來更像是可以停止與不同/新編譯器版本一起工作的解決方法。如果(新{a = 2,b =「z」}。GetType()。IsAnonymousType) – 2010-06-16 10:27:59

+0

接受ans if – 2010-09-17 07:54:33

回答

-1

您是否嘗試過輸出new { a = 2, b = "z" }.GetType()以獲得與之比較的值?如果沒有,這是我首先要做的。

var t = new { a = 2, b = "z" }.GetType(); 

var c = 2; // set a breakpoint on this line, and see what t contains 
-1

匿名類將包含名稱AnonymousType,它們不會有一個名稱空間或聲明類型。您可以使用它來查看它是否是匿名的。雖然我不知道它是如何安全...

var t = new { a = 2, b = "z" }.GetType(); 
bool isAnonymous = t.Namespace == null && t.DeclaringType == null; 
+0

'Namespace'對於全局類也可以爲null,這將是很好的。無論如何,'DeclaringType'對於非嵌套類型將爲空。 -1。 – nawfal 2013-10-10 07:32:28

+0

@nawfal:好的。這回答我的「雖然我不知道它有多安全......」:) – simendsjo 2013-11-15 18:54:46

2

除了開始<>和含AnonymousType(在C#中,如VB它VB$開始)沒有太多要測試的怪異的名字。我不會賭名稱測試,但是...