§ ITPOW >> 文档 >> C#

C# 3.0 -匿名类型

作者:vkvi 来源:ITPOW(原创) 日期:2009-8-16

在 C# 2.0 中,类都必须通过 class 定义,有时候,特别是 LINQ 推出后,使用对象来传递值是很频繁的,而各对象的结构又随时不同,若要预先经过 class 定义,反而使程序复杂了,所以 C# 3.0 中,可以像 JavaScript 的 JSON 一样:

var doc = new {
    Title = "标题",
    Content = "内容",
    doc.CreatedOn,
    size
};
Response.Write(doc.Title);
  • 使用 var。

  • 没有类型名称,new 后面空格加大括号。

  • 大括号里面是属性和属性值配对,用“=”。

  • doc.CreatedOn 是 doc 的一个属性,这种情况下可以省略匿名类的属性名称。

  • size 是一个变量,这种情况下也可以省略匿名类的属性名称。

  • 匿名类不能动态指定属性名,比如 Title 不能是变量。

  • 匿名类不能后续添加属性,这是在 new 的时候就固定了。因为匿名类跟动态类是两回事,匿名类其实是指:一体化创建类和实例。有些人把二者搞混了。如果动态属性的目的,是想让自己的类能够被更广泛的场景调用,其实不用匿名类,而应该用泛型。

相关阅读

相关文章