Eso depende si Option Infer
es speci fied. Normalmente, los siguientes son equivalentes:
'VB.Net
Dim myVar
Dim myString = "Hello world!"
Dim myString2 As String = "Hello world!"
//C#
object myVar;
object myString = "Hello world!"; //Notice type is object, *not* string!
string myString2 = "Hello world!";
Sin embargo, con Option Infer
habilitado, Dim
se vuelve más como var
cuando la variable se inicializa en la misma línea:
'VB.Net
Option Infer On
Dim myVar
Dim myString = "Hello!"
//C#
object myVar;
var myString = "Hello!"; //Or the equivalent: string myString = "Hello!";
Tenga en cuenta que esto puede llevar a cierta confusión porque, de repente, inicializar una variable en el punto de declaración significa algo diferente de inicializarlo más tarde. :
'VB.Net
Option Infer On
Dim myVar1
myVar1 = 10
Dim myVar2 = 10
myVar1 = New MyClass() 'Legal
myVar2 = New MyClass() 'Illegal! - Value of type 'MyClass' cannot be converted to 'Integer'
Esto se puede solucionar al permitir Option Strict
, que (entre otras cosas) obliga a todas las variables que debe darse un tipo (implícita o no) en el momento de la declaración.
Para obtener más aclaraciones, además de lo que ya ha descubierto, busque enlaces iniciales o finales. Esa es la diferencia entre los dos en el núcleo. –