如何用VB.NET编写?
public class Foos : ICollection<Foo> {
private List<Foo> list;
public Foos() {
list = new List<Foo>();
}
public Foo this[int index] {
get {
return list[index];
}
}
}
以下是我的尝试:
Public Class Foos
Implements ICollection(Of Foo)
Private list as Generic.List(Of Foo)
Public Sub New()
list = New Generic.List(Of Foo)()
End Sub
Public ReadOnly Property Me(index As Integer) As Foo
Get
Return list(index)
End Get
End Property
End Class
Visual Studio在Me(index As Integer)
(指向 Me 关键字)的位置给出了编译错误:
关键字无效作为标识符。
VB编码员在这里使用什么?
答案 0 :(得分:7)
使用Default
以及保留名称Me
以外的其他内容:
Default Public ReadOnly Property Item(index As Integer) As Foo
Get
Return list(index)
End Get
End Property
Default
表示该属性是该类的默认属性,这意味着如果您不指定属性名称,它将隐式使用默认属性。所以它看起来像数组索引器但实际上只是一个方法调用。
您也可以将其命名为任何名称 - Item
是框架类使用的相当常见的名称,但使用名称Item
毫无魔力。
答案 1 :(得分:3)
您可以使用Converter工具将C#转换为VB.NET。
http://codeconverter.sharpdevelop.net/SnippetConverter.aspx
Public Class Foos
Implements ICollection(Of Foo)
Private list As List(Of Foo)
Public Sub New()
list = New List(Of Foo)()
End Sub
Public Default ReadOnly Property Item(index As Integer) As Foo
Get
Return list(index)
End Get
End Property
End Class