VB的Dim与C#的var相同吗?

前端之家收集整理的这篇文章主要介绍了VB的Dim与C#的var相同吗?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
这是一个小问题:在VB上,我可以使用Dim来声明变量.在C#中,我可以声明然后使用var.我更熟悉C#的复杂性,我知道var使用类型推断来确定变量的类型.但我不知道’Dim’是什么.

我似乎在this question,但它并不比较这两个关键字.如果有区别,有人可以告诉我哪个?

这取决于是否指定了 Option Infer.通常,以下是等效的:
'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!";

但是,启用了Option Infer,当变量在同一行上初始化时,Dim变得更像var.

'VB.Net
Option Infer On
Dim myVar
Dim myString = "Hello!"
//C#
object myVar;
var myString = "Hello!"; //Or the equivalent:  string myString = "Hello!";

请注意,这可能会导致一些混淆,因为在声明点突然初始化一个变量意味着与以后初始化不同的东西:

'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'

这可以通过启用Option Strict来进行修复,其中(除其他外)强制所有变量在声明时被赋予类型(隐式或不显式).

猜你在找的VB相关文章