Что означает DIM в Visual Basic?
Что означает DIM в Visual Basic?
Ответы:
Dim первоначально (в BASIC) расшифровывался как Dimension, поскольку он использовался для определения размеров массива.
(Первоначальной реализацией BASIC была Dartmouth BASIC, которая произошла от FORTRAN, где прописано DIMENSION.)
В настоящее время Dim используется для определения любой переменной, а не только массива, поэтому ее значение больше не является интуитивным.
Dim
были разные значения, приписываемые ему.
Я нашел ссылки о Dim
значении «Объявить в памяти» , более релевантной является документ по Dim Statement, опубликованный Oracle как часть справочника по языку Siebel VB. Конечно, вы можете утверждать, что если вы не объявляете переменные в памяти, где вы это делаете? Может быть, «Объявить в модуле» является хорошей альтернативой, учитывая, как Dim
используется.
На мой взгляд, «Объявить в памяти» на самом деле является мнемоникой , созданной, чтобы облегчить изучение, как использовать Dim
. Я вижу «Объявить в памяти» как лучшее значение, так как оно описывает то, что он делает в текущих версиях языка, но это не правильное значение.
На самом деле, у истоков Basic Dim
использовался только для объявления массивов. Для обычных переменных ключевое слово не использовалось, вместо этого их тип был выведен из их имени. Например, если имя переменной заканчивается на $
это, то это строка (это то, что вы могли видеть, например, даже в именах методов вплоть до VB6 Mid$
). И так, вы использовали Dim
только, чтобы дать размерность массивам (обратите внимание, что ReDim
размеры массивов).
Действительно, это имеет значение ? Я имею в виду, это ключевое слово, оно имеет значение внутри искусственного языка. Это не должно быть слово на английском или любом другом естественном языке. Так что это может означать, что вы хотите, все, что имеет значение, это то, что это работает.
Во всяком случае, это не совсем так. Поскольку BASIC является частью нашей культуры, и понимание того, почему оно стало таким, как оно есть, - я надеюсь, - поможет улучшить наше видение мира.
Я сижу у своего компьютера с желанием помочь сохранить этот маленький кусочек нашей культуры, который кажется потерянным, вместо того, чтобы угадывать, что это было. Итак, я выкопал MSDN как текущие, так и старые компакт-диски из версии 1998 года. Я также искал документацию для старого QBasic [Пришлось использовать DOSBox] и сумел получить руководство по Darthmouth, чтобы узнать, о чем они говорят Dim
. К моему разочарованию, они не говорят, что означает Dim
, а говорят только, как это используется.
Но до того, как моя надежда смутилась, мне удалось найти это руководство по использованию микрокомпьютерной системы BBC (которое, как утверждается, относится к 1984 году, и я не хочу в этом сомневаться). Микрокомпьютер BBC использовал вариант BASIC, названный BBC BASIC, и это описано в документе. Несмотря на то, что он не говорит о том, что означает Dim
, он говорит (на странице 104):
... вы можете измерить N $, чтобы иметь столько записей, сколько хотите. Например, DIM N $ (1000) создаст строковый массив с пространством для 1000 различных имен.
Как я уже сказал, это не говорит о том, что Dim
означает измерение, но служит доказательством того, что общение Dim
с ним Dimension
было обычным делом во время написания этого документа.
Позже я получил приятный сюрприз (на странице 208), заголовок раздела, описывающего ключевое слово DIM (примечание: его нет в содержании), гласит:
DIM измерение массива
Итак, я не получил цитату «Дим обозначает ...», но, думаю, ясно, что любой порядочный человек, способный прочитать этот документ, сочтет, что это Dim
означает измерение.
С новой надеждой я решил поискать, как Dim
был выбран. Опять же, я не нашел аккаунта на эту тему, но все же смог найти точную цитату:
Прежде чем вы сможете использовать массив, вы должны определить его в операторе DIM (измерение).
Вы можете найти это как часть Руководства пользователя True BASIC Online на веб-странице True BASIC inc, компании, основанной Томасом Юджином Курцем , соавтором BASIC.
Таким образом, в действительности Dim
это сокращение для DIMENSION
, и да. Это существовало в Фортране и раньше, поэтому вполне вероятно, что оно было выбрано под влиянием Фортрана, как сказал Патрик Макдональд в своем ответе .
Dim sum as string = "this is not a chinese meal" REM example usage in VB.NET ;)
Dim
самом деле означает
Это сокращение от Dimension, так как оно изначально использовалось в BASIC для указания размера массивов.
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
Позже он стал использоваться для объявления всех видов переменных, когда в более поздних реализациях была добавлена возможность указывать тип для переменных.
Он обозначает Dimension, но обычно читается как «Создать переменную» или «Выделить пространство для этого».
Объявление переменной. Первоначально, это было сокращение от «измерение», которое не является термином, который используется в программировании (вне этого конкретного ключевого слова) в какой-либо значительной степени.
http://in.answers.yahoo.com/question/index?qid=20090310095555AANmiAZ
В свое время DIM зарезервировал память для массива, и когда память была ограничена, вы должны были быть осторожны, как вы ее использовали. Однажды я написал (в 1981 году) программу BASIC для TRS-80 Model III с 48 КБ ОЗУ. Он не будет работать на аналогичной машине с 16 КБ ОЗУ, пока я не уменьшу размер массива, изменив оператор DIM
Ключевое слово Dim является необязательным, когда мы используем его с модификаторами: Public, Protected, Friend, Protected Friend, Private, Shared, Shadows, Static, ReadOnly и т. Д. Например: Static nTotal As Integer
Для ссылочного типа мы должны использовать ключевое слово new для создания нового экземпляра класса или структуры. например Dim lblTop As New System.Windows.Forms.Label
.
Оператор Dim может использоваться без типа данных, если для параметра Option Infer установлено значение On . В этом случае компилятор выводит тип данных переменной из типа ее выражения инициализации. Пример :
Option Infer On
Module SampleMod
Sub Main()
Dim nExpVar = 5
Вышеприведенное утверждение эквивалентно Dim nExpVar As Integer