我正在尝试使用可在Microsoft Access中公开的索引创建一个对象数组。我已经找到了如何创建索引器类,但由于它是通用的,因此该属性不会在Access VBA中公开。更具体地说,我正在转换一个与Access一起使用的VB.NET COM DLL,这是我想要转换的字符串数组属性代码:
Public Shared _ReportParameters(0 To 9) As String
Public Property ReportParameters(Optional index As Integer = Nothing) As String
Get
Return _ReportParameters(index)
End Get
Set(ByVal Value As String)
_ReportParameters(index) = Value
End Set
End Property
这是我转换为C#的代码,它使用了一个无法在DLL中公开的索引器类:
public static string[] _ReportParameters = new string[10];
public Indexer<string> ReportParameters
{
get
{
return _ReportParameters.GetIndexer();
}
}
有什么想法吗?
答案 0 :(得分:1)
您发布的VB.NET代码的C#中最接近的是:
class Thing
{
public static string[] _ReportParameters = new string[10];
public string[] ReportParameters { get { return _ReportParameters; } }
}
用作
var thing = new Thing();
var result = thing.ReportParameters[0];
thing.ReportParameters[1] = "Test";
但是,索引器的编写如下:
class Thing
{
public static string[] _ReportParameters = new string[10];
public string this[int index]
{
get
{
return _ReportParameters[index];
}
set
{
_ReportParameters[index] = value;
}
}
}
用作
var thing = new Thing();
var result = thing[0];
thing[1] = "Test";