将C#格式转换为VB
-
28-09-2019 - |
题
我相信这对你们来说是一个简单的问题,但我不知道该开发人员在做什么。
name = String.Format(MyStringBuilder + "");
如果我将其转换为VB,我会收到消息“ operator + bess stystem.text.stringbuilder and String并未定义”。如果我使用&。
解决方案
从最严格的意义上讲,原始代码中的mystringBuilder可能是一个空的实例,此时对.toString()进行明确调用将引发例外。但是,提供的代码样本将正确执行。在VB中,您可能想说
Dim name As String
If MyStringBuilder Is Nothing Then
name = String.Empty
Else
name = MyStringBuilder.ToString()
End If
其他提示
看来写作的人正试图将MystringBuilder的隐式转换为使用 +操作员与空字符串联合使用。
要在VB中执行此作业,您只需要:
name = MyStringBuilder.ToString()
这对我来说没有意义,因为Afaict仅将一个参数传递到字符串。Format什么都没做。
将“”添加到StringBuilder中,只是将其强化为字符串。
name = MyStringBuilder.ToString();
将是我在C#中这样做的方式。将该语句转换为VB应该更容易加载。
使用myStringBuilder.toString()。这将解决问题。
您正在尝试将StringBuilder对象和字符串在一起 - 这是行不通的:)
name = String.Format(MyStringBuilder.ToString() + "");
这应该正确编译。
在vb.net中,您将使用“&”而不是“+”
这线:
name = String.Format(MyStringBuilder + "");
正在导致MystringBuilder的隐式铸件将字符串(使用ToString()方法)来使用“+”操作员。与:
name = String.Format(MyStringBuilder.ToString() + "");
与
name = MyStringBuilder.ToString();
在vb.net中成为了这一点:
name = MyStringBuilder.ToString()
不隶属于 StackOverflow