DIMはVisual BasicおよびVisualで何を表していますか?


回答:


318

Dimは、元々(BASICでは)配列の次元を定義するために使用されていたため、Dimensionを意味していました。

(BASICの最初の実装は、DIMENSIONが記述されているFORTRANから派生したDartmouth BASICでした。)

現在、Dimは配列だけでなく変数の定義にも使用されているため、その意味は直感的ではなくなりました。


64
少し背景が役立つかもしれません。Basicの初期のリリースでは、宣言する必要がある変数は配列のみでした。「Dim」キーワードは、この配列の次元を設定するために使用されました。
Chris Simpson、

26
80年代初頭にgw-basicプログラミングガイドを読んだことを覚えており、DIMがDeclare In Memoryを意味することを説明していることをはっきりと覚えています。Darthmouth Basicガイドを'64から読むと、LETおよびREADステートメントで変数とその値が割り当てられ、'68以降ではDIMが含まれ、実際には配列に使用されます。bitsavers.org/pdf/dartmouth/BASIC_4th_Edition_Jan68.pdf
RandyMorris

4
覚えておくべきことの1つは、初期の言語開発では、キーワードを多重定義して複数の意味を持つことが一般的であったことです。元のBasicでは、 "Dim"は既に配列変数の宣言に使用されるキーワードだったため、すべての変数の宣言を含むようにキーワードが拡張されました。新しいキーワードの導入は、いくつかの理由で回避されました。その1つは、新しいキーワードを変数名としてすでに使用している既存のプログラムを壊したくないということです。今日、より高度な解析技術とより高速なコンピューターを使用していますが、そのような制限はありません。
zumalifeguard

3
たとえば、Visual Basicなどの新しいBasicでは、型と変数を同じ名前にすることができます。オーバーロードされすぎたキーワードの良い例は、C ++の「静的」です。これは、異なるコンテキストでは異なることを意味します。
zumalifeguard

リンクされた優れたBASICマニュアル@RandyMorrisを参照している人にとって、DIMへの最初の参照は、21ページ目またはPDF自体の26ページ目です。より正式な定義は、PDF自体の37または41番のページにあります。
ジョンカミングス

120

Dim それに起因するさまざまな意味があった。

"Declare In Memory"のDim意味についての参照を見つけましたが、より関連性の高い参照は、Siebel VB言語リファレンスの一部としてOracleが公開したDimステートメントに関するドキュメントです。もちろん、メモリ内で変数を宣言しない場合、どこでそれを行うのでしょうか。たぶん、「モジュールで宣言」は、どのように使用されるかを考えると良い選択肢です。Dim

私の意見では、 "Declare In Memory"は実際にはニーモニックであり、使用方法をより簡単に学習できるように作成されていますDim。「メモリ内で宣言する」は、現在のバージョンの言語で何が行われるかを説明しているため、より良い意味であると思いますが、適切な意味ではありません。

実際、Basicの起源では、Dim配列を宣言するためだけに使用されていました。通常の変数の場合、キーワードは使用されず、代わりにその名前から型が推測されました。たとえば、変数の名前がで終わる場合、$それは文字列です(これは、たとえばVB6までのメソッド名でも確認できますMid$)。そのため、配列に次元Dim与えるためだけに使用しました(配列のサイズを変更することに注意してください)。ReDim


本当に、それは重要ですか?つまり、人工言語の中で意味を持つキーワードです。英語やその他の自然言語である必要はありません。だから、それはあなたが望むものを意味するだけかもしれません、重要なのはそれが機能することです。

とにかく、それは完全に真実ではありません。BASICは私たちの文化の一部なので、なぜそれがこのようになったのかを理解すること(私は願っています)が世界のビジョンを改善するのに役立ちます。


私は自分のコンピューターの内側から座って、失われたように見える私たちの文化のこの小さな部分を、それが何であったかについての私たちの推測に置き換えられて保存するのを助けたいという願望を持って座っています。それで、私は1998年のバージョンの現在のCDと古いCDの両方をMSDNで掘り下げました。私はまた、古いQBasic [DOSBoxを使用しなければならなかった]のドキュメントを検索し、ダースマスのマニュアルをなんとか手に入れましたDim。私ががっかりしたのは、彼らが何を意味するのかを言うのではなくDim、それがどのように使われるのかだけを言っているからです。

しかし、希望が薄れる前に、私はこのBBCマイクロコンピュータシステム使用ガイドを見つけることができました(これは1984年からであると主張しており、疑いたくありません)。BBCマイクロコンピュータは、BBC BASICと呼ばれるBASICの変種を使用し、それはドキュメントに記載されています。何を意味するのかはDim明記されていませんが、(104ページ):

... N $をディメンション化して、必要な数のエントリを持つことができます。たとえば、DIM N $(1000)は、1000の異なる名前のスペースを持つ文字列配列を作成します。

私が言ったように、それはDim次元を意味するとは言いませんが、そのドキュメントを書いている時点でとの関連Dim付けDimensionが一般的であったことを示す証拠となります。

今、私は後で(208ページで)やりがいのある驚きを得ました、DIMキーワードを説明するセクションのタイトル(注:内容にはリストされていません)は次のように述べています:

配列のDIM次元

したがって、「Dimは次を表します...」という見積もりは得られませんでしたが、それらのドキュメントを読むことができる適切な人間であれば、それDimは次元を意味するものと見なすことは明らかです。


新たな希望を持って、私Dimは選ばれた方法について検索することにしました。繰り返しになりますが、この件に関するアカウントは見つかりませんでしたが、決定的な引用を見つけることができました。

配列を使用する前に、配列をDIM(次元)ステートメントで定義する必要があります。

これは、BASICの共著者であるThomas Eugene Kurtzが設立したTrue BASIC incのWebページにあるTrue BASIC Online User's Guidesの一部として見つけることができます。


したがって、現実にDimは、はの省略形でDIMENSIONあり、はい。これは以前にFORTRANに存在していたため、パトリックマクドナルドの回答で述べたように、FORTRANの影響を受けた可能性があります


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

1
「宣言宣言」も聞いたことがあります。
ジョクル

「本当に、それは重要ですか?」過小評価された冗談。また、私は今、これがDim実際に何を表しているのかを人々に主張するつもりです
Jacob Stamm

30

当初は配列のサイズを指定するためにBASICで使用されていたため、Dimensionの略です。

DIM —(次元の略)配列のサイズを定義します

参照:http : //en.wikipedia.org/wiki/Dartmouth_BASIC

元のBASICコンパイラソースコードの一部。DIMコマンドを見つけるとジャンプし、キーワードの元の意図を明確に確認できます。

DIM    LDA XR01             BACK OFF OBJECT POINTER
       SUB N3
       STA RX01
       LDA L        2       GET VARIABLE TO BE DIMENSIONED
       STA 3
       LDA S        3
       CAB N36              CHECK FOR $ ARRAY
       BRU *+7              NOT $
       ...

参照:http : //dtss.dartmouth.edu/scans/BASIC/BASIC%20Compiler.pdf

後で、変数のタイプを指定する可能性がより最近の実装に追加されたときに、すべての種類の変数を宣言するために使用されるようになりました。


15

変数をディメンション化します。基本的には、ある時点でこのタイプの変数が必要になることをコンパイラーに伝えます。


13

これはDimensionを表していますが、通常は「変数の作成」または「これにスペースを割り当てる」と読みます。



7

DIMはDeclaration In Memoryの略です。DIMx As New Integerは、メモリに変数xが格納されるスペースを作成します。


6

昔は、DIMがアレイ用にメモリを予約していたため、メモリが限られている場合は、その使用方法に注意する必要がありました。私はかつて(1981年に)48Kb RAMを搭載したTRS-80モデルIIIのBASICプログラムを書いたことがあります。DIMステートメントを変更して配列サイズを小さくするまで、16Kb RAMの同様のマシンでは実行されません


4

ディメンションの略。変数の一種です。この単語で変数を設定していることを宣言(またはVisual Basicに「伝え」)ます。


3

Dimキーワードは、修飾子とともに使用する場合はオプションです-Public、Protected、Friend、Protected Friend、Private、Shared、Shadows、Static、ReadOnlyなど。例- Static nTotal As Integer

参照型については、我々は使用する必要があり、新しいクラスや構造体の新しいインスタンスを作成するために、キーワードを。例えばDim lblTop As New System.Windows.Forms.Label

Option InferをOnに設定すると、Dimステートメントをデータ型なしで使用できます 。その場合、コンパイラーは初期化式の型から変数のデータ型を推測します。例:

Option Infer On

Module SampleMod

Sub Main()

 Dim nExpVar = 5

上記のステートメントは、 Dim nExpVar As Integer


StackOverflowへようこそ。この回答をありがとうございましたが、同じ回答を提供する他の多数の回答については詳しく説明していません。
Deanna、2015
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.