繁体   English   中英

将C#格式转换为VB

[英]Convert C# format to VB

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

name = String.Format(MyStringBuilder + "");

如果将其转换为VB,则会收到消息“未为类型system.text.stringbuilder和string定义运算符+”。 如果我使用&,也是一样。

看起来好像是编写它的人正在尝试使用+运算符结合空字符串来强制将MyStringBuilder隐式转换为字符串。

要在VB中执行此分配,您只需要:

name = MyStringBuilder.ToString()

从最严格的意义上讲,原始代码中的MyStringBuilder可以为null实例,此时,显式调用.ToString()会引发异常。 但是,提供的代码示例将正确执行。 在VB中,您可能要说

Dim name As String
If MyStringBuilder Is Nothing Then
   name = String.Empty
Else
   name = MyStringBuilder.ToString()
End If

这对我来说是没有意义的,因为AFAICT仅将一个参数传递给string.format不会执行任何操作。

在字符串生成器中添加“”只会将其强制为字符串。

name = MyStringBuilder.ToString(); 这将是我在C#中的做法。 将该语句转换为VB应该更容易加载。

使用MyStringBuilder.ToString()。 这样可以解决问题。

您正在尝试将StringBuilder对象和String连接在一起-这是行不通的:)

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 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM