2009-06-23 4 views
241

Что означает DIM в Visual Basic?Что означает DIM в Visual Basic и BASIC?

+86

Это хороший вопрос, на самом деле. Не «то, что он делает», а «почему это называется так». –

+32

Крики, дайте парню перерыв. Нет никакого правила о том, как сложные вопросы должны быть здесь. –

+22

Я не согласен с ivan. Знание того, что делает Дим, - это одно, зная, что это означает, говорит вам немного больше о том, откуда оно взялось. Это может быть полезной помощью для обучения. –

ответ

270

дим первоначально (в BASIC) выступали за измерение, так как он был использован, чтобы определить размеры массива.

(оригинальный реализация BASIC был Дартмут BASIC, который сошел с FORTRAN, где DIMENSION прописано.)

В настоящее время, Dim используется для определения любой переменной, а не только массивы, поэтому его значение не является интуитивным больше.

+57

немного фона может помочь. В ранних выпусках основных переменных, которые должны были быть объявлены, были массивы. Ключевое слово «Dim» использовалось для установки размеров этого массива. –

+24

Я помню, как читал gw-basic руководство по программированию в начале 80-х, и я явно помню его, объясняя DIM, что означает Declare In Memory. Чтение основного руководства от Darthmouth от «64 »содержит операторы LET и READ, назначающие переменные и их значения, а позже в «68 DIM» включены и фактически используются для массивов. http://www.bitsavers.org/pdf/dartmouth/BASIC_4th_Edition_Jan68.pdf – RandyMorris

+3

Следует иметь в виду, что в раннем развитии языка было слишком сложно перегрузить ключевое слово, чтобы иметь несколько значений. Поскольку в исходном Basic «Dim» уже было ключевым словом, используемым для объявления переменных массива, ключевое слово было расширено, включив объявление всех переменных. Внедрение нового ключевого слова было устранено по нескольким причинам, одним из которых они не хотели разорвать существующие программы, которые уже использовали новое ключевое слово в качестве имени переменной. Сегодня у нас есть более сложные технологии синтаксического анализа и более быстрые компьютеры, мы не видим этих ограничений. – zumalifeguard

12

Измерение переменной, в основном вы говорите компилятору, что вам понадобится переменная этого типа в какой-то момент.

7

Объявление переменной. Первоначально это было мало для «измерения», что не является термином, который используется в программировании (вне этого конкретного ключевого слова) в какой-либо значительной степени.

http://in.answers.yahoo.com/question/index?qid=20090310095555AANmiAZ

+7

Ваши массивы безразмерные? Как странно ... –

23

Это сокращение от Dimension, поскольку оно первоначально использовалось в BASIC для указания размера массивов.

DIM - (сокращенно размерности) определяют размер массивов

Ref: 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

Позже он стал использоваться для объявления всех видов переменных, когда возможность указать тип переменных была добавлена ​​в более поздние версии.

11

Он обозначает размер, но обычно читается как «Создать переменную» или «Выделить пространство для этого».

5

В тот же день, когда DIM зарезервировал память для массива и когда память была ограничена, вы должны быть осторожны, как вы ее использовали. Однажды я написал (в 1981 году) программу BASIC на TRS-80 Model III с 48 КБ оперативной памяти. Он не будет работать на аналогичной машине с 16 КБ ОЗУ, пока я не уменьшу размер массива, изменив инструкцию DIM

93

Dim имеют разные значения, приписываемые ему.

я нашел упоминание о Dim означает «Объявить Памяти», тем более релевантная ссылка является документом о Dim Statement опубликовала Oracle в рамках Siebel VB Language Reference. Конечно, вы можете утверждать, что если вы не объявляете переменные в памяти, где вы это делаете? Может быть «Объявить в модуле» - хорошая альтернатива, учитывая, как используется Dim.

На мой взгляд, «Объявить в памяти» на самом деле Мнемоника, созданная для того, чтобы было легче узнать, как использовать Dim. Я вижу «объявить в памяти» как лучший смысл, поскольку он описывает, что он делает в текущих версиях языка, но это не правильный смысл.

Фактически, у истоков Basic Dim использовался только для объявления массивов. Для обычных переменных не использовалось ключевое слово, вместо этого их тип был выведен из их имени. Например, если имя переменной заканчивается $, то это строка (это то, что вы могли видеть даже в именах методов до VB6, например Mid$). Итак, вы использовали Dim, чтобы дать размер массивам (обратите внимание, что ReDim изменяет размеры массивов).


Действительно, Имеет ли значение? Я имею в виду, что это ключевое слово имеет смысл в искусственном языке. Это не должно быть слово на английском или любом другом естественном языке. Таким образом, это может означать только то, что вы хотите, все, что имеет значение, - это то, что оно работает.

Во всяком случае, это не совсем так. Поскольку BASIC является частью нашей культуры и понимает, почему это так, как я, надеюсь, поможет улучшить наше видение мира.


Я сижу с моим компьютером с желанием помочь сохранить этот маленький кусочек нашей культуры, которая кажется потерянной, замененной нашим гаданием о том, что это было. Итак, я выкопал MSDN как текущие, так и старые компакт-диски из версии 1998 года. Я также искал документацию для старого QBasic [Использовал DOSBox] и сумел получить руководство по Дартмуту, чтобы узнать, как они говорят о Dim. Для моего разочарования они не говорят, что стоит Dim, и только говорят, как он используется.

Но прежде чем моя надежда была тусклой, мне удалось найти этот BBC Microcomputer System Used Guide (который утверждает, что с 1984 года, и я не хочу сомневаться в этом). Микрокомпьютер BBC использовал вариант BASIC под названием BBC BASIC, и он описан в документе. Несмотря на то, что не говорит, что делает Dim стенд для, он говорит (на странице 104):

... вы можете размерности N $, чтобы иметь столько записей, сколько вы хотите. Для примера DIM N $ (1000) создаст строковый массив с пробелом для 1000 разных имен.

Как я уже сказал, это не говорит о том, что Dim означает измерение, но служит доказательством того, чтобы показать, что ассоциирования Dim с Dimension было обычным делом в момент написания этого документа.

Теперь, я получил полезный сюрприз позже (на странице 208), название для раздела, описывающего DIM ключевое слово (примечание: это не указано в содержимом) говорит:

DIM Размерность массива

Итак, я не получил цитату «Dim означает ...», но я думаю, ясно, что любой порядочный человек, который умеет читать эти документы будут считать, что Dim означает размер ,


С новой надеждой я решил найти то, как был выбран Dim.Опять же, я не нашел учетной записи по этому вопросу, но я смог найти окончательную цитату:

Прежде чем вы сможете использовать массив, вы должны определить его в инструкции DIM (измерение).

Вы можете найти это как часть True BASIC Online User's Guides на веб-странице Истинного BASIC Inc, компания, основанная Thomas Eugene Kurtz, соавтор BASIC.


Так, в reallity, Dim является обобщающим для DIMENSION, да. Это существовало в FORTRAN раньше, поэтому вполне вероятно, что он был выбран из-за влияния FORTRAN как Patrick McDonald said in his answer.


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

Я тоже слышал «объявить в памяти». – jocull

6

DIM означает Декларацию Памяти DIM х как новый Integer создает пространство в памяти, где переменные й хранятся

3

Сокращенно измерение. Это тип переменной. Вы объявляете (или «рассказываете» Visual Basic), что вы настраиваете переменную с этим словом.

1

Ключевое слово Dim является необязательным, если мы используем его с модификаторами - Public, Protected, Friend, Protected Friend, Private, Shared, Shadows, Static, ReadOnly и т. Д. , например. - Static nTotal As Integer

Для ссылочного типа мы должны использовать ключевое слово , чтобы создать новый экземпляр класса или структуры. например Dim lblTop As New System.Windows.Forms.Label.

Инструкция Dim может использоваться без какого-либо типа данных, если вы установили Опция Infer On On. В этом случае компилятор передает тип данных переменной из типа выражения инициализации. Пример:

Option Infer On 

Module SampleMod 

Sub Main() 

Dim nExpVar = 5 

выше утверждение эквивалентно Dim nExpVar As Integer to-

+0

Добро пожаловать в StackOverflow и благодарим вас за этот ответ, но на самом деле он не распространяется на многочисленные другие ответы, которые дают одинаковый ответ. – Deanna