是否有 issue/difference 使用文字数据类型

Is there any issue/difference using literal data types

有什么区别吗:

Dim Str As String
Dim Int As Integer
Dim Lng As Long
Dim Sng As Single
Dim Dbl As Double
Dim Dec As Decimal

Dim Str$
Dim Int%
Dim Lng&
Dim Sng!
Dim Dbl#
Dim Dec@

我可以毫无问题地使用缩写吗?

没有区别。 https://msdn.microsoft.com/en-us/library/s9cz43ek.aspx

唯一的问题是代码的可读性和可维护性。另一个不熟悉类型后缀的程序员将无法轻松维护您的代码。

不要那样做。这些缩写是过去的遗物。它们从 Basic 时代就存在了。它会损害代码的可读性。因为有 IntelliSense,您不会浪费时间输入非缩写代码。如果你真的想缩写,让编译器选择这样的类型:

dim str = "my string"

(例如)。

要使其正常工作,Option Infer 必须处于活动状态

没有任何区别。有关这些的详细信息,请参阅 this page

这些是以前版本的 Visual Basic 的遗留物,已经(正确地)停止使用,因此您应该尽量避免使用它们。

此外 - 它可能会让人感到困惑(也许不会让你感到困惑,但绝对会让其他人看你的代码)因为所有这些字符都有其他含义:

  • $ VS2015中的字符串插值字符
  • & 字符串连接
  • ! 字段快捷方式运算符
  • # 码区

对于任何熟悉 C# 的人:

  • % C# 中的模运算符
  • @ C# 中的字符串文字

注意:只要你有 Option Infer On(并始终确保你有 Option Strict On)——在很多情况下你不需要定义类型,因为这是正确的推断:

Dim a = CalculateSum(1, 2)

在这种情况下 CalculateSum returns 一个 Integer,因此 a 被声明为整数。