在Visual Basic中Dim代表什么?


当前回答

维数变量,基本上你是在告诉编译器你在某个时候需要一个这种类型的变量。

其他回答

Dim最初(在BASIC语言中)代表Dimension,因为它被用来定义数组的维度。

(BASIC最初的实现是达特茅斯BASIC,它起源于FORTRAN,其中DIMENSION是拼写出来的。)

现在,Dim用于定义任何变量,而不仅仅是数组,因此它的含义不再是直观的。

DIM代表内存声明 DIM x作为新整数 在内存中创建存储变量x的空间

Dim关键字是可选的,当我们使用它与修饰器-公共,受保护,朋友,受保护的朋友,私人,共享,阴影,静态,只读等。 例:-静态nTotal As Integer

对于引用类型,我们必须使用new关键字来创建类或结构的新实例。例如:Dim lblTop As New System.Windows.Forms.Label。

Dim语句可以在设置时不带数据类型的情况下使用 选项推断到开启。 在这种情况下,编译器从变量初始化表达式的类型推断出变量的数据类型。 例子:

Option Infer On

Module SampleMod

Sub Main()

 Dim nExpVar = 5

上面的语句等价于- Dim nExpVar As Integer

Dim被赋予了不同的含义。

我找到了Dim的意思是“在内存中声明”的参考资料,更相关的参考资料是关于Dim语句的文档,作为Siebel VB语言参考的一部分发布在Oracle中。当然,你可能会说,如果你不在内存中声明变量,你在哪里声明呢?考虑到Dim的使用方式,也许“Declare in Module”是一个不错的选择。

在我看来,“Declare In Memory”实际上是一个助记符,创建它是为了让学习如何使用Dim更容易。我认为“Declare In Memory”有更好的含义,因为它描述了它在当前版本的语言中所做的事情,但它不是正确的含义。

事实上,在Basic Dim的起源仅用于声明数组。对于常规变量,不使用关键字,而是从它们的名称推断它们的类型。例如,如果变量名以$结尾,那么它就是一个字符串(这是你甚至可以在VB6的方法名中看到的,例如Mid$)。因此,使用Dim只是为了给数组赋值(注意,ReDim调整数组的大小)。


真的吗?我的意思是,这是一个关键词,它在人工语言中有它的含义。它不必是英语或任何其他自然语言中的一个单词。所以它可以是你想要的任何东西,重要的是它能起作用。

无论如何,这并不完全正确。因为BASIC语言是我们文化的一部分,我希望理解它为什么会是这样,这将有助于改善我们对世界的看法。


我坐在电脑前,渴望帮助保护我们文化中这一小块似乎已经消失的东西,取而代之的是我们对它的猜测。因此,我从1998年的版本中挖掘了MSDN当前和旧的cd。我还搜索了旧的QBasic文档[不得不使用DOSBox],并设法得到了一些Darthmouth手册,所有这些都是为了找到他们是如何谈论Dim的。令我失望的是,他们没有说Dim代表什么,只说如何使用。

但在我的希望渺茫之前,我设法找到了这本BBC微型计算机系统使用指南(它声称是1984年的,我不想怀疑它)。BBC微型计算机使用的是一种叫做BBC BASIC的BASIC变体,在文档中有详细描述。尽管它没有说Dim代表什么,但它说(在104页):

... 你可以给N$维数,让它有你想要的个数。为 例如,DIM N$(1000)将创建一个空间为1000的字符串数组 不同的名称。

正如我所说的,它并没有说Dim代表维度,但它证明了在编写该文档时将Dim与dimension关联是一件很常见的事情。

现在,我后来得到了一个惊喜(在第208页),描述DIM关键字的部分的标题(注意:在内容中没有列出)说:

数组的DIM维数

所以,我没有听到“Dim代表…”这句话,但我想很明显,任何能够阅读这些文件的正派人都会认为Dim代表维度。


怀着新的希望,我决定调查一下迪姆是如何被选中的。同样,我没有找到关于这个主题的说明,但我仍然能够找到一个明确的引用:

在使用数组之前,必须在DIM(维度)语句中定义它。

你可以在True BASIC公司的网页上找到这是True BASIC在线用户指南的一部分,该公司是由BASIC的合著者Thomas Eugene Kurtz创立的。


所以,实际上,Dim是DIMENSION的缩写,是的。它之前就存在于FORTRAN中,所以它很可能是受FORTRAN的影响而选择的,就像Patrick McDonald在他的回答中所说的那样。


Dim sum as string = "this is not a chinese meal" REM example usage in VB.NET ;)

在过去,DIM为数组保留内存,当内存有限时,必须小心使用它。我曾经(1981年)在TRS-80 Model III上写过一个BASIC程序,内存为48Kb。除非我通过更改DIM语句减小数组大小,否则它无法在具有16Kb RAM的类似机器上运行