使用文字数据类型是否存在任何问题/差异

时间:2015-12-01 09:38:44

标签: .net vb.net declaration type-inference literals

之间有什么区别:

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@

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

3 个答案:

答案 0 :(得分:3)

不要那样做。这些缩写是过去的遗物。他们从基础时代开始就存在。它会损害代码的可读性。因为有智能感知,所以输入非缩写代码不会浪费时间。如果你真的想缩写,那么让编译器选择这样的类型:

dim str = "my string"

(例如)。

为此,Option Infer必须有效

答案 1 :(得分:2)

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

这些是以前版本的Visual Basic中的遗留物,并且(正确地)不再使用,因此您应该尽量避免使用它们。

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

  • $ VS2015中的字符串插值字符
  • &字符串连接
  • !字段快捷键操作符
  • #代码区域

对于熟悉C#的人:

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

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

Dim a = CalculateSum(1, 2)

在这种情况下,CalculateSum会返回Integer,因此a会被声明为整数。

答案 2 :(得分:1)

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

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