VB.Net变量声明:打字还是不打字?

s6fujrry  于 2023-05-02  发布在  .NET
关注(0)|答案(6)|浏览(113)

在VB.Net中,声明字符串的常用方法是:

Dim helloWorld As String = "Hello, World!"

但是,您也可以使用动态变量,例如:

Dim helloWorld = "Hello, World!"

两者最终都是一样的,但最好的做法是什么?

ih99xse1

ih99xse11#

使用Type!

真的。VB坐在上面。Net,而.Net在坚持使用显式类型时工作得最好。唯一的例外是打开了Option Infer(现在是默认的),并且你也声明了类似于C#的var的变量,或者你正在做COM互操作或其他真正需要动态类型的事情。这是非常罕见的。

9ceoxa92

9ceoxa922#

回答您的问题what would be the best practice?
当然,最佳实践是将对象声明为它应该是的类型。
如果你不这样做,那么你的代码可能会有负面的影响和语法错误的影响,或者例如在IntelliSense中,有时无法显示对象方法,那么你也不能使用它们(如果首先你没有将对象转换为你真正想要的类型),因为你在声明时没有在类型之前设置。
一个不是最好的例子,但只是一个例子:
假设你想声明一个数组,你是这样做的:

Dim myArray = {"qwerty"}

但是它不被识别为Array,所以方法与Array方法不同(在这个例子中完全不同):

但如果你这样做:

Dim myArray As Array = {"qwerty"}

因此,对于第一种情况,您稍后需要将类型转换为您真正想要正确使用的类型:

这对其他很多例子也是有效的,在这些例子中,类型是令人困惑的,就像我说的,这不是最好的例子,但我给你们看了一个基本的。
PS:原谅我的英语。

erhoui1w

erhoui1w3#

请...

当你看代码的时候,把类型放在眼睛上会更安全,但我猜有些人会使用它,因为它在这么多版本之后仍然是一个功能。

哇...Vb

是VB,没什么区别。编译器让你做各种各样的事情,这是其中之一。
您还可以更改vbproj中的一些设置,使您可以在不返回应该返回的函数的情况下进行编译。
它还允许您在传递引用类型参数时使用关键字ByVal,当您查看代码时,这是非常不直观的。
但还是..不,你的例子没有区别。

vddsk6oq

vddsk6oq4#

这取决于你的项目。
如果它是一个有很多行和类的大项目。然后你应该输入所有的变量,因为当你编程的时候,它会更容易记住你想“说”什么。
无论如何,如果你知道你会经常使用类型变量,那么它永远不会是一件糟糕的服装。

edqdpe6u

edqdpe6u5#

这种动态变量声明是为了与旧的office库等兼容,或者在从linq查询返回某些复杂数据类型时更方便。它不是用来替换原始的。

o75abkj4

o75abkj46#

如果对于任何读者来说,我们拥有的类型都是显而易见的,或者没有人关心,那么输入类型就没有人增加价值。
如果我们不确定是否每个有合理知识的人都会解码变量的类型,并且有人会真正关心它,那么明确指定类型是很重要的,否则我们会粗心大意。
我喜欢短格式,当我需要的时候,我会悬停一个变量,但我明白不是每个人都有我的偏好。
(在任何地方使用相同的策略,仅仅是因为你想在任何地方使用相同的策略,这是教条主义的)。

相关问题