Public Class MyList
Inherits List(Of MyObject)
Public ReadOnly Property SelectedCount() As Integer
Get
Return Me.Count(Function(obj) obj.IsSelected)
End Get
End Property
End Class
上面的代码会导致编译时错误。如您所见,我正在尝试使用扩展方法Count(<predicate>)
。我猜这个错误是因为List
类本身也有一个类似名称的属性 Count,隐藏了扩展成员。
我的问题是:
我是否需要将我的类显式转换为其他东西才能访问
Count
扩展方法?如果是这样,在上面的场景中它到底应该是哪个类?为什么编译器不能从我指的是方法而不是属性的用法中推断出来?
考虑到这是一种大量使用的方法(有时可能每秒调用数百次),强制转换是否涉及大量开销?
在这方面,C# 是否比 VB.NET 更好?
我正在使用 .NET 4.0 和 VS2010,如果这有关系的话。
编辑
错误信息:
'
Public ReadOnly Property Count As Integer
' 没有参数并且它的返回类型不能被索引。