Domanda

Sono sicuro che questo è una semplice domanda per voi ragazzi, ma io non so cosa questo sviluppatore sta facendo.

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

Se converto questo per VB ottengo il messaggio "operatore + non è definito per i tipi System.Text.StringBuilder e la stringa". Stessa cosa se uso &.

È stato utile?

Soluzione

In senso stretto, myStringBuilder nel codice originale potrebbe essere un esempio nullo, a questo punto si effettua una chiamata esplicita a .ToString () sarebbe un'eccezione. Il codice di esempio fornito sarebbe eseguire correttamente, tuttavia. In VB, si potrebbe voler dire

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

Altri suggerimenti

Sembra come se la persona che lo ha scritto sta tentando di forzare una conversione implicita di myStringBuilder in una stringa utilizzando l'operatore + in congiunzione con la stringa vuota.

Per eseguire questo compito in VB è sufficiente:

name = MyStringBuilder.ToString()

Non ha senso per me perché AFAICT passare un solo argomento per String.Format non fa nulla.

L'aggiunta di "" al StringBuilder solo costringe in una stringa.

name = MyStringBuilder.ToString(); sarebbe come mi piacerebbe fare questo in C #. Conversione che la dichiarazione di VB dovrebbe essere un sacco più facile.

Usa MyStringBuilder.ToString (). Che risolverà il problema.

Si sta cercando per concatenare un oggetto StringBuilder e String insieme - che non avrebbe funzionato:)

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

Questo dovrebbe compilare correttamente.

In VB.NET si userebbe un "&" invece di un "+"

Questa riga:

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

sta causando un cast implicito myStringBuilder a stringa (utilizzando il metodo ToString ()), al fine di utilizzare l'operatore "+". E 'lo stesso di:

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

, che è lo stesso di

name = MyStringBuilder.ToString();

che diventa tale in VB.NET:

name = MyStringBuilder.ToString()
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top