質問

これは皆さんにとって簡単な質問だと確信していますが、この開発者が何をしているのかわかりません。

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

これをVBに変換すると、「Operator +はタイプSystem.Text.StringBuilderと文字列について定義されていません」というメッセージが表示されます。私が使用している場合も同じことです。

役に立ちましたか?

解決

最も厳しい意味では、元のコードの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()

string.formatに1つの引数だけを渡すだけで、それは私には意味がありません。

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