Преобразовать формат C # в VB
-
28-09-2019 - |
Вопрос
Я уверен, что это простой вопрос для вас, ребята, но я не знаю, что делает этот разработчик.
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()