LINQ学习篇(3) -- 对匿名类型的一点补充说明

Dim product = New With {Key .Name = "paperclips", Key .Price = 1.29, .OnHand = 24}

类定义包含的属性定义类似于下面的内容。请注意,键属性没有 Set 方法。键属性的值是只读的。等同于:

Public Class $Anonymous1
Private _name As String
Private _price As Double
Private _onHand As Integer
Public Property Name() As String
Get
Return _name
End Get
End Property

Public Property Price() As Double
Get
Return _price
End Get
End Property

Public Property OnHand() As Integer
Get
Return _onHand
End Get
Set(ByVal Value As Integer)
_onHand = Value
End Set
End Property

End Class

如果匿名类型声明至少包含一个键属性,则类型定义将重写三个从 Object 继承的成员。Equals、GetHashCode 和 ToString。如果未声明任何键属性,则仅重写 ToString。重写的成员提供以下功能:

如果两个匿名类型实例是同一实例,则 Equals 返回 True;否则,如果它们满足下面的条件:

  • 它们具有相同个数的属性。

  • 属性以相同顺序声明,具有相同的名称和相同的推断类型。名称比较不区分大小写。

  • 至少有一个属性是键属性,并且 Key 关键字应用于相同的属性。

  • 如果比较每个相对应的键属性对,则会返回 True

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值