|
|
1
7
使用允许使用变量类型的语言声明变量类型的主要原因是检查您自己。如果有一个变量用来保存一个字符串,然后意外地将它传递给一个需要整数的函数,那么编译器就无法判断 你 除非你告诉我你搞砸了 它 那个变量应该总是一个字符串。相反,你的字符串被重新解释为一个整数,这几乎永远不会给你想要的,结果很可能是混乱的,很难找到错误。 在几乎所有的语言中,都有许多构造,您可以将其忽略掉,您的程序可以工作,但作为对程序员的检查而存在。编译器的第一项工作是将代码转换为可执行文件。但是编译器的第二项工作是尽可能地确保程序员没有犯错误。尤其是当你的程序变大时,让编译器发现这样的错误要比相信你输入的一切都是正确的容易得多。 此外,通常有一些与变量相关的处理开销,但这是一个更为次要的问题。 |
|
|
2
3
有几个原因:
|
|
|
3
1
其他人已经提到了IntelliSense,但它值得重复。 另外,当您为变量声明一个显式类型时,您可以让编译器对您的代码进行各种额外的类型检查和验证,否则是不可能的。发生的是现在某些非常常见的错误被捕获 固定 在编译时而不是运行时。用户从未见过它们。您不想在运行时留下错误。 你说“可能是任何事”——这是真的。但你接着会说“所以一定很好”。这不一定会发生,而且非常危险。不是所有的东西都能被分配或与其他东西结合。它可以是任何东西-但它 是 一些东西,或者更确切地说是一些特定的东西。如果没有显式类型,编译器就无法知道什么,也无法帮助您避免错误。 |
|
|
4
0
从表面上看,如果不声明类型,IntelliSense就不能帮助您处理它,因为它不知道它是什么类型。 |
|
|
5
0
与python的输入系统相比。python允许开发人员使用变量而不预先声明类型,但是一旦使用了变量,类型就固定了。相比之下,变量最初可以被分配任何类型的值,以后可以存储不同类型的值,而不需要任何警告或投诉。因此,您可以将一个字符串放入一个以前保存数字的变量中。
如果您必须维护别人的代码,那么您将开始理解为什么这类事情(静默地更改变量类型)会变得非常难以维护。尤其是如果您使用的是模块级变量,这可能会导致一些非常有趣的问题。这与在VB代码中使用Option Explicit是相同的。如果没有明确的选项,您可以在不意识到它的情况下做这类事情:
在某些字体中,这两个变量名是不可能区分的,这可能导致一些难以发现的错误。 |
|
|
Mear1628 · vb.net从随机选择的端口号接收UDP 1 年前 |
|
|
user1946932 · .Net正则表达式在所有字符前添加空格 1 年前 |
|
|
user1946932 · 正则表达式:删除连续两个以上的<br>? 1 年前 |
|
|
Josh · 通过反思访问孩子的财产 1 年前 |
|
|
Khu RJ · 更新网格中的单元格-DevExpress网格控件 1 年前 |
|
|
Mick · VB.NET Regex。替换不起作用(数组未更新) 2 年前 |