swo*_*978 1 .net vb.net .net-1.1
我已经转换了这个现有的C#.NET 2.0代码(它看起来带有任何字符的字符串,只返回该字符串中的数字):
private static string StripMIN(string min)
{
string result = string.Empty;
int digit = 0;
for (int i = 0; i < min.Length; i++)
{
if (int.TryParse(min[i].ToString(), out digit) == true)
{
result += min[i];
}
}
return result;
}
Run Code Online (Sandbox Code Playgroud)
这个VB.Net .Net 1.1代码:
Private Function StripMIN(ByVal min As String) As String
Dim result As String = String.Empty
Dim digit As Integer = 0
Dim i As Integer = 0
While i < min.Length
Me.SystemMessages.Text = "Char at " + i + " : " + min(i)
If TryParseInteger(min(i).ToString(), digit) = True Then
result += min(i)
End If
System.Math.Max(System.Threading.Interlocked.Increment(i), i - 1)
End While
Return result
End Function
Run Code Online (Sandbox Code Playgroud)
我在VB.Net代码的第6行收到错误消息min(i).错误消息显示:
"Expression is not an array or a method, and cannot have an argument list"
Run Code Online (Sandbox Code Playgroud)
我不是很精通.Net 1.1并且找不到解决此错误的替代解决方案.有没有人对我如何访问这个字符串的每个字符有任何建议,并验证它是一个数字并只返回.Net 1.1中字符串的数字?
您的问题是转换为VB,而不是框架更改.尝试使用min.Chars(i).请参阅此MSDN文章,该文章显示了索引器属性(min[i]在C#中看到的位置)Chars在VB中命名)
但是,我会使用这样的东西:
Private Function StripMIN(ByVal min As String) As String
Dim result as New StringBuilder()
ForEach c In min
If Char.IsDigit(c) Then
result.Append(c)
End If
End ForEach
Return result.ToString()
End Function
Run Code Online (Sandbox Code Playgroud)