由于双括号导致代码转换困难

时间:2018-09-24 15:58:13

标签: c# vb.net legacy-code

我正在尝试将一些旧的版本从VB转换为C#,但是我遇到了一个关于双括号的特定区域的问题

Dim _atts As List(Of String()) = List(Of String())
Dim tmp() As String = Me._atts.Item(AttNo)(ValNo).Split(_SVM)

我不明白如何用C#编写(attNo)(valNo)

我尝试了以下方法,但是没有运气

List<string[]> _atts = new List<string[]>();
string[] tmp = this._atts[attNo](valNo).Split(_SVM);

有人可以启发我关于双括号在VB中的实际作用吗?

谢谢

1 个答案:

答案 0 :(得分:3)

在VB.Net中,此上下文中的括号用于访问和迭代数组的值(访问索引器)。因此,如果您的成员变量“ exampleArray”的值为{“ I”,“ Like”,“ Coding”},则可以按以下方式访问它:

VB

Dim tmpStr as String = Me.exampleArray(1); 

C#

string tmpStr = this.exampleArray[1];

现在tmpStr包含值“ Like”

现在考虑您有一个包含{exampleArray,someOtherArray}的数组“ outerArray”。如果要获得值“ Like”,则需要索引两个数组:

VB

Dim tmpStr as String = outerArray(0)(1)

C#

string tmpStr = outerArray[0][1];

第一组方括号(c#)或括号(VB)用于索引“ outerArray”以访问“ exampleArray”。 然后使用第二组方括号或括号访问“ exampleArray”中的值“ Like”。

参考:Micorsoft Programming Guide - Arrays