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 ()
¿Fue útil?

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) vs yourArray.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 de IIf porque siempre se evalúa IIf 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(), y Trim(), tratará a un argumento de Nothing (Null en c #) como equivalente a una cadena de longitud cero. Ejecución de métodos de cadena en Nothing será, por supuesto, una excepción.
  • También puede pasar Nothing a las clásicas funciones Mid() VB y Replace(). En lugar de lanzar una excepción, éstos volverán Nothing.

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)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top