c#中的VB默认属性是什么?

本文关键字:是什么 属性 默认 中的 VB | 更新日期: 2023-09-27 18:03:16

找到一个例子,我不明白它是什么意思

如何使用相同的代码从DataRow或DataReader读取?

我不知道如何转换接口和两个类在回答c# ?

编辑:这是我想转换为c#的代码:

Interface IIndexer
    Default ReadOnly Property Item(ByVal index As String)
End Interface
Class DataReaderWrapper
Implements IIndexer
Private ReadOnly _reader As IDataReader
Public Sub New(reader As IDataReader)
    _reader = reader
End Sub
Public ReadOnly Property Item(index As String) As Object Implements IIndexer.Item
    Get
        Return _reader(index)
    End Get
End Property
End Class
Class DataRowWrapper
Implements IIndexer
Private ReadOnly _row As DataRow
Public Sub New(row As DataRow)
    _row = row
End Sub
Public ReadOnly Property Item(index As String) As Object Implements IIndexer.Item
    Get
        Return _row(index)
    End Get
End Property
End Class

c#中的VB默认属性是什么?

据我所知,没有类似的东西。有关Default关键字的更多信息,请访问MSDN。

你在这里看到的是一个接口中的索引器。

转换后的代码如下所示:

interface IIndexer
{
    object this[string index] { get; }
}
class DataReaderWrapper : IIndexer
{
    private readonly IDataReader _reader;
    public DataReaderWrapper(IDataReader reader)
    {
        _reader = reader;
    }
    public object this[string index]
    {
        get { return _reader[index]; }
    }
}
class DataRowWrapper : IIndexer
{
    private readonly DataRow _row;
    public DataRowWrapper(DataRow row)
    {
        _row = row;
    }
    public object this[string index]
    {
        get { return _row[index]; }
    }
}

像这样的东西可以工作,它不清楚你所说的'default property'是什么意思:

var loadedItems = new List<Item>();
SqlDataReader dr = GetItemsDataReader();
while(dr.Read()){
  Item item = GetItemFromData(dr);
  loadedItems.Add(item);
}
private Item GetItemFromData(SqlDataReader dr){
  var loadedItem = new Item();
  loadedItem.ID = dr["ID"];
  loadedItem.Name = dr["Name"];
  'etc., etc.'
  Return loadedItem
}