我使用从VB的旧代码,但我想知道什么是对vb.net新的代码,最好的办法..旧的Visual Basic和中期左功能
test = Mid(strData, Pos1 + Len(strFirst))
test = Mid(strData, Pos1 + Len(strFirst) + 3 + Len(strID))
test = Microsoft.VisualBasic.Left(strID, Pos2 - 1)
我使用从VB的旧代码,但我想知道什么是对vb.net新的代码,最好的办法..旧的Visual Basic和中期左功能
test = Mid(strData, Pos1 + Len(strFirst))
test = Mid(strData, Pos1 + Len(strFirst) + 3 + Len(strID))
test = Microsoft.VisualBasic.Left(strID, Pos2 - 1)
既然你没有提供的数据内容变量:strData
strID
strFirst
Pos1
Pos2
我不能写一个更好的代码来解释,但这个例子应该足够了。
等效的VB6
功能:
Len = "String".Length
Left = "String".Substring(0, length)
Mid = "String".Substring(start position, length)
然后VB.NET
代码翻译应该看起来像这样:
test = strData.Substring(pos1 + strFirst.length)
test = strData.Substring(pos1 + strFirst.length + 3 + strID.length)
test = strID.Substring(Pos2 - 1)
重要的是要注意,Substring是基于零的,其中Mid是一个基础,并且Mid不会抛出异常,请求的值超出范围。另外,Mid可以充当替换功能,而这在Substring中不可用。 – jfrankcarr
@jfrankcarr - 在VB6中,字符串函数可能基于0或1,具体取决于Option Base设置。 –
@ChrisDunaway - 确实如此,但很难看到任何VB6程序员,除了被迫使用VB的C++程序员之外,在字符串函数中使用0个碱基。 – jfrankcarr
VB.NET还是有[所有字符串函数(http://msdn.microsoft .com/en-us/library/microsoft.visualbasic.strings_methods(v = vs.110).aspx)VB6。我会坚持使用这些,而不是试图重新发明轮子。现在,如果您正在迁移到C#,我的答案会有所不同。 – Icemanind
VB字符串函数只是底层NET函数的包装器。除非你是VB6的向导,或者正在使用大量的遗留代码,否则几乎没有理由通过中间层。 – Plutonix