如何确定对象是否为匿名类型?

时间:2010-06-16 06:41:06

标签: c# anonymous-types

  

可能重复:
  Anonymous Types - Are there any distingushing characteristics?

找不到合适的房产。

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

要放什么而不是......?

3 个答案:

答案 0 :(得分:2)

除了以<>开头且包含AnonymousType的奇怪名称(在C#中,如在VB中以VB$开头),没有太多需要测试的名称。我不打赌会进行名称测试,但是......

答案 1 :(得分:-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

答案 2 :(得分:-1)

匿名类将包含名称AnonymousType,它们不具有命名空间或声明类型。您可以使用它来查看它是否是匿名的。虽然我不确定它有多安全......

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