我相信这对你们来说是一个简单的问题,但我不知道该开发人员在做什么。

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()
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top