vb.net - number - CStr() Str().ToString()
text to integer in vb (4)
Aunque no es un problema en el código de la pregunta, es importante mencionar que Str()
solo convierte expresiones numéricas en cadenas, da un error en otros casos, así que no lo use para convertir valores de una celda.
Solo quiero saber, ¿cuál es exactamente la diferencia entre las funciones CStr () y Str () y también .ToString () ? Con el código proporcionado a continuación, ¿cuál es la diferencia entre los tres?
Label1.Text = CStr(Int(Rnd() * 10))
y
Label1.Text = Str(Int(Rnd() * 10))
y
Label1.Text = Int(Rnd() * 10).ToString
Cuando utilicé esta condición
If Label1.Text = "7" Then
''Some code here
End If
... la función Str () no funcionó aquí. ¿Qué diferencia hizo? gracias por adelantado :))
Como una adición al entorno VBA / VB6 donde no tenemos ToString()
:
Str()
no tiene conocimiento de la representación internacional. El separador decimal siempre es un punto (.
).Como ya se mencionó anteriormente, prefija la cadena resultante con un espacio en blanco en caso de valores positivos.
También existe
Str$()
. La diferencia conStr()
es el tipo de devolución:Str()
devuelve una variante de tipo cadena,Str$()
devuelve una cadena.Y
Str$()
es un poco más rápido queStr()
.CStr()
por el contrario, conoce la representación internacional. El separador decimal depende de la configuración internacional de Windows.No se realizarán prefijos adicionales para valores positivos.
Por lo tanto, si necesita convertir un tipo de valor en una cadena y asegurarse de tener un punto como separador decimal y sin prefijo en blanco , utilice esta sintaxis:
Dim d As Double
d = 123.456
Dim s As String
s = Trim(Str$(d))
No sé sobre ToString () y no sé sobre VB.NET
Pero en VB6 (Visual Basic 6):
Tanto Cstr () como Str () convierten valores a cadena. pero Cstr () es mejor porque:
Str (): Después de convertir a cadena, agrega 1 espacio antes de números positivos. por ejemplo: Str (22)> "22"
Cstr (): después de convertir a cadena, nunca agrega el espacio adicional anterior. Para obtener el mejor resultado, úselo con Trim () - Trim (Cstr (Variable))
ToString llamará a la función .ToString()
en una instancia particular. En la práctica, esto significa que arrojará una excepción si el objeto en cuestión es Nothing
. Sin embargo, puede implementar .ToString()
en sus propias clases para obtener una representación de cadena útil de su objeto, mientras que CType
/ CStr
solo funciona con clases e interfaces incorporadas.
CStr y CType ( expresión , cadena) son exactamente equivalentes (no estoy seguro de dónde el otro afiche tuvo la idea de que CStr
es más rápido). Pero no son realmente funciones, son directivas de compilación que emitirán un código muy diferente dependiendo de la declaración de expresión . En la mayoría de los casos, estas directivas llaman a un montón de código VB interno que intenta obtener una cadena razonable fuera de expresión .
DirectCast ( expresión , cadena) asume que la expresión en cuestión realmente es una String
y simplemente la lanza. Es la más rápida de todas estas opciones, pero arrojará una excepción si la expresión no es una String
.