匿名类型的目的是什么?

Jos*_*h G 7 .net anonymous-types

匿名类型的最佳用例是什么?

在我看来,它们仅在有限的上下文中有用,例如一个类或一个函数.它们很难在这种情况之外使用,因为没有反射,没有人会知道这些类型可用的属性.

Sco*_*vey 4

匿名类型仅适用于非常狭窄的范围。我遇到的大多数用例都涉及 Linq。

var result = from x in MyCollection
             select new 
             {
                 x.Prop1, 
                 x.Prop2
             };
Run Code Online (Sandbox Code Playgroud)

此外,在 Linq to SQL 的情况下 - 使用匿名类型将通过仅选择匿名类型中使用的列来生成不同的 SQL。在上面的情况下(如果它是 Linq to SQL 查询),它将生成类似“select prop1, prop2 from mytable”的内容,而不是选择所有字段。

我(还)从未遇到过我想在代码中声明一个新的匿名类型的情况。我想如果有其他的话,也许局部常量会很有用?

var x = new
        {
            FirstName = "Scott",
            LastName = "Ivey"
        };
Run Code Online (Sandbox Code Playgroud)