gpt4 book ai didi

c# - VB的Dim和C#的var一样吗?

转载 作者:IT王子 更新时间:2023-10-29 04:47:22 25 4
gpt4 key购买 nike

这是一个小疑问:在VB上,我可以使用Dim来声明变量。在 C# 中,我可以使用 var 进行声明。我更熟悉 C# 的复杂性,而且我知道 var 使用类型推断 来确定变量的类型。但我不确定'Dim'是做什么的。

我好像this question在 SO 上,但它不比较两个关键字。如果有区别,有人可以告诉我是哪一个吗?

最佳答案

这取决于是否 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 来解决。 ,这(除其他外)强制所有变量在声明时被赋予类型(隐式或非隐式)

关于c# - VB的Dim和C#的var一样吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5678909/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com