Вопрос

Я уверен, что это простой вопрос для вас, ребята, но я не знаю, что делает этот разработчик.

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

Если я преобразую это в VB, я получаю сообщение «Оператор + не определен для типов System.Text.StringBuilder и String». То же самое, если я пользуюсь и.

Это было полезно?

Решение

В самых строгом смысле MyStringBuilder в исходном коде может быть нулевым экземпляром, в какой точку создавая явный вызов. Обеспеченный выбор кода выполнит должным образом. В 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 проходит только один аргумент на string.format ничего не делать.

Добавление «» на StringBuilder просто принудительно принудительно к строке.

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 с атрибуция
Не связан с StackOverflow
scroll top