Pergunta

O que são o equivalente dos seguintes operadores de VB.Net para C #?

  • UBound ()
  • LBound ()
  • IsNothing ()
  • Chr ()
  • Len ()
  • UCase ()
  • LCase ()
  • Left ()
  • Right ()
  • RTrim ()
  • LTrim ()
  • Trim ()
  • Mid ()
  • Substituir ()
  • Split ()
  • Junte-()
  • MsgBox ()
  • IIF ()
Foi útil?

Solução

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:. Se a matriz é de comprimento zero, GetUpperBound retornará -1, enquanto Comprimento retornará 0. UBound() em VB.NET retornará -1 para matrizes de comprimento zero
  • As funções de cadeia VB usa um índice baseado, enquanto o método .NET usa um índice com base zero. Ou seja, corresponde Mid("asdf",2,2) para "asdf".SubString(1,2).
  • ? não é o equivalente exato de IIf porque IIf sempre avalia ambos argumentos, e ? avalia apenas o que precisa. Isso poderia importa se existem efeitos colaterais da avaliação ~ estremecer!
  • As Muitas funções VB corda clássicos, incluindo Len(), UCase(), LCase(), Right(), RTrim() e Trim(), irá tratar um argumento de Nothing (Null em c #) como sendo equivalente a uma cadeia de comprimento zero. Correndo métodos string em Nothing vai, naturalmente, lançar uma exceção.
  • Você também pode passar Nothing às funções clássicas Mid() VB e Replace(). Em vez de lançar uma exceção, estes irão retornar Nothing.

Outras dicas

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 funções são métodos de membro da classe Microsoft.VisualBasic.Information, na Microsoft.VisualBasic montagem, de modo que você pode usá-los diretamente. No entanto, a maioria deles tem C # equivalentes, ou equivalentes não específico de linguagem em classes do framework .NET núcleo:

  • UBound (): Array.GetUpperBound
  • LBound (): Array.GetLowerBound
  • IsNothing (): == null
  • Chr (): (char)intValue (elenco)
  • Len (): String.Length
  • UCase (): String.ToUpper
  • LCase (): String.ToLower
  • Left (), Right () e Mid (): String.Substring (com argumentos diferentes)
  • RTrim (): String.TrimEnd
  • LTrim (): String.TrimStart
  • Trim (): String.Trim
  • Substituir (): String.Replace
  • Split (): String.Split
  • Junte-(): String.Join
  • MsgBox (): MessageBox.Show
  • IIF (): condition ? valueIfTrue : valueIfFalse (operador condicional)

Links

A maioria destes seria métodos de instância no objeto string que retorna a string 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();

Em primeiro lugar, a maioria dos que não são operadores. São funções e as funções só estão incluídos no VB.Net por razões de compatibilidade. Isso significa que você não deve usá-los em VB.net, quer, e sim usar os equivalentes fornecidos pela nova API.

  • UBound () - arrayVar.Length
  • LBound () - obsoleto, limite inferior é sempre 0 em uma matriz .Net normais
  • IsNothing () - obsoleta. Use Is Nothing em VB.Net e == null em C #
  • Chr () - Convert.ToChar() ou (char)someVar
  • Len () - uso stringVar.Length isso em VB demasiado
  • UCase () - uso stringVar.ToUpper() isso em VB demasiado
  • LCase () - uso stringVar.ToLower() isso em VB demasiado
  • Left () - uso stringVar.Substring(0, n) isso em VB demasiado
  • Right () - uso stringVar.Substring(stringVar.Length - n) isso em VB demasiado
  • RTrim () - uso stringVar.TrimEnd() isso em VB demasiado
  • LTrim () - uso stringVar.TrimStart() isso em VB demasiado
  • Trim () - uso stringVar.Trim() isso em VB demasiado
  • Mid () - uso stringVar.Substring(n, m) isso em VB demasiado
  • Substituir () - uso stringVar.Replace() isso em VB demasiado
  • Split () - uso stringVar.Split() isso em VB demasiado
  • Junte-() - String.Join() usar isso em VB demasiado
  • MsgBox () - MessageBox.Show()
  • IIF () - (condition) ? truepart : falsepart - "" Note que existem algumas diferenças, porque é uma operadora e não uma função

Você encontrará a conversão para muitas destas funções em desta página wikipedia .

Eu acredito que alguns deles como Mid() ainda estão disponíveis no .NET Framework no namespace Microsoft.VisualBasic que você ainda pode referência de código C #.

Outra ...

VB - IsDBNull (valor)

C # - yourdatarow.IsNull ( "columnName")

Se você olhar no MSDN você vê que a maior parte do tempo, há código de exemplo para ambas as línguas.

  • LimiteSup () -> se x for uma matriz de cadeia [], por exemplo: x.GetUpperBound ();
  • LBound () -> se x for uma matriz de cadeia [], por exemplo: x.GetLowerBound ();
  • IsNothing () -> if (x == null)
  • Chr () -> carvão animal x = (char) 65;
  • Len () -> x.length ();
  • UCase () -> assumir x é uma string: x.ToUpper ();
  • LCase () -> assumir x é uma string: x.ToLower ();
  • Left () -> assumir x é uma string: x.Substring (0, 10); // primeiros 10 caracteres
  • Right () -> assumir x é uma string: x.Substring (x.length - 10); // últimos 10 caracteres
  • RTrim () -> x.TrimEnd ();
  • LTrim () -> x.TrimStart ();
  • Trim () -> x.Trim ();
  • Mid () -> assumir x é uma string: x.Substring ()
  • Substituir () -> assumir x é uma string: x.Replace ();
  • Split () -> assumir x é uma string: x.Split ();
  • Junte-() -> String.Join ();
  • MsgBox () -> MessageBox.Show ();
  • IIF () -> ternário operador (x == verdadeiro verdadeiro valor:? Falso-value);

Mais uma adição a esta poderia ser IndexOf () Função para localizar cadeia dentro corda

Um exemplo a seguir ...

string MainString = "String Manipulation"; 
string SearchString = "pul"; 
int FirstChr = MainString.IndexOf(SearchString); 
//SHOWS START POSITION OF STRING 
MessageBox.Show("Found at : " + FirstChr );

Além das respostas acima. Tenha cuidado com a substituição Len () -> x.length. VB Len () permite que você passe nula, mas em C # você receberá uma exceção. Às vezes, seria melhor usar String.IsNullrEmpty () (Se a situação o permitir)

A função espaço está faltando a partir da lista de todo mundo:

Space(16) -> new String(" ", 16)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top