VB a C # Funciones
-
19-09-2019 - |
Pregunta
que son el equivalente de los siguientes operadores de VB.Net a C #?
- UBound ()
- LBound ()
- IsNothing ()
- Chr ()
- Len ()
- UCase ()
- LCase ()
- Izquierda ()
- derecha ()
- RTrim ()
- LTrim ()
- Trim ()
- Mid ()
- Reemplazar ()
- Split ()
- Join ()
- MsgBox ()
- IIF ()
Solución
VB C#
UBound() = yourArray.GetUpperBound(0) or yourArray.Length for one-dimesional arrays
LBound() = yourArray.GetLowerBound(0)
IsNothing() = Object.ReferenceEquals(obj,null)
Chr() = Convert.ToChar()
Len() = "string".Length
UCase() = "string".ToUpper()
LCase() = "string".ToLower()
Left() = "string".Substring(0, length)
Right() = "string".Substring("string".Length - desiredLength)
RTrim() = "string".TrimEnd()
LTrim() = "string".TrimStart()
Trim() = "string".Trim()
Mid() = "string".Substring(start, length)
Replace() = "string".Replace()
Split() = "string".Split()
Join() = String.Join()
MsgBox() = MessageBox.Show()
IIF() = (boolean_condition ? "true" : "false")
Notas
-
yourArray.GetUpperBound(0)
vsyourArray.Length
: si la matriz es de longitud cero, GetUpperBound volverá -1, mientras que la longitud volverá 0.UBound()
en VB.NET devolverá -1 para las matrices de longitud cero .
- Las funciones de cadena VB utiliza una un índice basado, mientras que el método .NET utiliza un índice basado en cero. Es decir.
Mid("asdf",2,2)
corresponde a"asdf".SubString(1,2)
. -
?
no es el equivalente exacto deIIf
porque siempre se evalúaIIf
ambos argumentos, y?
sólo evalúa la que necesita. Esto podría importa si hay efectos secundarios de la evaluación ~ estremecimiento! - las muchas funciones VB clásico de la cadena, incluyendo
Len()
,UCase()
,LCase()
,Right()
,RTrim()
, yTrim()
, tratará a un argumento deNothing
(Null
en c #) como equivalente a una cadena de longitud cero. Ejecución de métodos de cadena enNothing
será, por supuesto, una excepción. - También puede pasar
Nothing
a las clásicas funcionesMid()
VB yReplace()
. En lugar de lanzar una excepción, éstos volveránNothing
.
Otros consejos
UBound() "array".Length
LBound()
IsNothing(): "object" == null
Chr() (char)"N"
Len() "string".Length
UCase() "string".ToUpper()
LCase() "string".ToLower()
Left() "string".Substring(from, to)
Right() "string".Substring(from, to)
RTrim() "string".TrimEnd()
LTrim() "string".TrimStart()
Trim() "string".Trim()
Mid() "string".Substring(from, to)
Replace() "string".Replace()
Split() "string".Split()
Join() String.Join()
MsgBox() MessageBox.Show()
IIF() validate ? iftrue : iffalse;
Todas estas funciones son métodos miembros de la clase Microsoft.VisualBasic.Information
, en la asamblea Microsoft.VisualBasic
, por lo que se pueden utilizar directamente. Sin embargo, la mayoría de ellos tienen equivalentes de C #, o equivalentes no específicos de idioma en las clases del núcleo del framework .NET:
- UBound ():
Array.GetUpperBound
- LBound ():
Array.GetLowerBound
- IsNothing ():
== null
- Chr ():
(char)intValue
(molde) - Len ():
String.Length
- UCase ():
String.ToUpper
- LCase ():
String.ToLower
- izquierda () y derecha () y Mid ():
String.Substring
(con diferentes argumentos) - RTrim ():
String.TrimEnd
- LTrim ():
String.TrimStart
- Trim ():
String.Trim
- Reemplazar ():
String.Replace
- Split ():
String.Split
- Join ():
String.Join
- MsgBox ():
MessageBox.Show
- IIF ():
condition ? valueIfTrue : valueIfFalse
(operador condicional)
Enlaces
La mayoría de estos sería los métodos de instancia en el objeto de cadena que devuelve la cadena modificada.
MsgBox vs. MessageBox.Show(..)
IIF vs. (expression?returnValueIfTrue:returnValueElse)
IIf(test, trueval, falseval)
>> (test ? trueval : falseval);
IsNothing(obj)
>> (obj == null);
UCase(str)
>> str.ToUpper();
LCase(str)
>> str.ToLower();
En primer lugar, la mayoría de los que no son operadores. Son funciones y las funciones sólo se incluyen en VB.Net por razones de compatibilidad. Esto significa que no debe usarlos en VB.net tampoco, y en lugar de utilizar los equivalentes proporcionadas por la nueva API.
- UBound () -
arrayVar.Length
- LBound () - obsoleto, límite inferior es siempre 0 en una matriz normal de .Net
- IsNothing () - obsoleta. Utilice
Is Nothing
en VB.Net y== null
en C # - Chr () -
Convert.ToChar()
o(char)someVar
- Len () -
stringVar.Length
utilizar este en VB también - Ucase () -
stringVar.ToUpper()
utilizar este en VB también - LCase () -
stringVar.ToLower()
utilizar este en VB también - Izquierda () -
stringVar.Substring(0, n)
utilizar este en VB también - derecha () -
stringVar.Substring(stringVar.Length - n)
utilizar este en VB también - RTrim () -
stringVar.TrimEnd()
utilizar este en VB también - LTrim () -
stringVar.TrimStart()
utilizar este en VB también - Recortar () -
stringVar.Trim()
utilizar este en VB también - Mid () -
stringVar.Substring(n, m)
utilizar esto en VB demasiado - Reemplazar () -
stringVar.Replace()
utilizar este en VB también - Split () -
stringVar.Split()
utilizar este en VB también - Join () -
String.Join()
utilizar este en VB también - MsgBox () -
MessageBox.Show()
- IIF () -
(condition) ? truepart : falsepart
- "?" En cuenta que hay algunas diferencias, porque es un operador y no una función
Encontrará la conversión de muchas de estas funciones en esta página de Wikipedia .
Creo que algunos de estos como Mid()
están todavía disponibles en el .NET Framework en el espacio de nombres Microsoft.VisualBasic la que todavía se puede hacer referencia a partir del código C #.
Otro ...
VB - IsDBNull (valor)
C # - yourdatarow.IsNull ( "columnName")
Si nos fijamos en MSDN que ver que la mayoría de las veces hay código de ejemplo para ambos idiomas.
- UBound () -> si x es una matriz de string [] por ejemplo: x.GetUpperBound ();
- LBound () -> si x es una matriz de string [] por ejemplo: x.GetLowerBound ();
- IsNothing () -> si (x == null)
- Chr () -> Char x = (char) 65;
- Len () -> x.length ();
- UCase () -> asumir x es una cadena: x.ToUpper ();
- LCase () -> asumir x es una cadena: x.ToLower ();
- Izquierda () -> suponer que x es una cadena: x.Substring (0, 10); // 10 primeros caracteres
- derecha () -> asumir x es una cadena: x.Substring (x.length - 10); // últimos 10 caracteres
- RTrim () -> x.TrimEnd ();
- LTrim () -> x.TrimStart ();
- TRIM () -> x.Trim ();
- Mid () -> asumir x es una cadena: x.Substring ()
- Reemplazar () -> asumir x es una cadena: x.Replace ();
- Split () -> suponer que x es una cadena: x.Split ();
- Join () -> string.join ();
- MsgBox () -> MessageBox.Show ();
- IIF () -> operador ternario (x == true cierto valor:? Falso-valor);
Una adición más a esto podría ser IndexOf () a la función Buscar cadena en cadena
Un ejemplo de abajo ...
string MainString = "String Manipulation";
string SearchString = "pul";
int FirstChr = MainString.IndexOf(SearchString);
//SHOWS START POSITION OF STRING
MessageBox.Show("Found at : " + FirstChr );
Además de las respuestas anteriores. Tenga cuidado con el reemplazo de Len () -> x.length. VB Len () le permite pasar nulo, pero en C # que obtendrá una excepción. A veces sería mejor utilizar String.IsNullrEmpty () (Si la situación lo permite)
La función de espacio no se encuentra en la lista de todos los demás:
Space(16) -> new String(" ", 16)