【问题标题】:C#: Anonymous types and property namesC#:匿名类型和属性名称
【发布时间】:2009-02-13 17:14:29
【问题描述】:

这之间有什么区别吗:

dataContext.People.Select(ø => new
{
     Name = ø.Name,
});

还有这个:

dataContext.People.Select(ø => new
{
     ø.Name,
});

?

【问题讨论】:

  • 这是什么 ->'ø'?披?
  • 这是一个挪威字符。 æ、ø 和 å。我通常将 ø 用于 lambda 的东西,因为 .Net 中没有其他东西或代码以该字母开头。这意味着智能感知不会发挥作用:)而且我实际上认为这封信使 lambda 看起来更好:p
  • 大声笑,你可以使用 λ。但我喜欢斯堪的纳维亚风格;-)。
  • λ 在我的键盘上不方便使用:p ø 在我的 L 键旁边,所以用我的小指很容易接触到;)
  • 在我点击“添加评论”之后,我明白了使用 λ 的意思,因为那是 Lambda...doh,哈哈。但是访问仍然很重要:p

标签: c# linq anonymous-types


【解决方案1】:

它们是相同的;如果未指定名称(并且右侧是简单的成员访问),则假定现有成员的名称。该名称仅用于:

  • 将名称更改为else(例如Name = grp.Key
  • 为非成员访问表达式命名(例如Count = grp.Count()

【讨论】:

  • 关于他的名声,看起来他有一些练习:p
【解决方案2】:

没有。第二个只是简单的为你推导出属性的名字,实际生成的代码是一样的。

【讨论】:

    【解决方案3】:

    不,编译器会将匿名类型的属性命名为与赋值右侧相同的名称。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-12
      相关资源
      最近更新 更多