Co oznacza DIM w Visual Basic?
Co oznacza DIM w Visual Basic?
Odpowiedzi:
Dim pierwotnie (w języku BASIC) oznaczał Wymiar, ponieważ był używany do definiowania wymiarów tablicy.
(Oryginalną implementacją BASICa była Dartmouth BASIC, wywodząca się z FORTRAN, w której podano WYMIAR).
Obecnie Dim służy do definiowania dowolnej zmiennej, nie tylko tablic, więc jej znaczenie nie jest już intuicyjne.
Dim
przypisano mu różne znaczenia.
Znalazłem odniesienia do Dim
znaczenia „Deklaracja w pamięci” , tym bardziej stosownym odniesieniem jest dokument dotyczący Dim Statement opublikowany w Oracle jako część Siebel VB Language Reference. Oczywiście możesz argumentować, że jeśli nie zadeklarujesz zmiennych w pamięci, gdzie to robisz? Może „Deklaracja w module” jest dobrą alternatywą, biorąc pod uwagę sposób Dim
użycia.
Moim zdaniem „Deklaracja w pamięci” jest w rzeczywistości mnemonikiem stworzonym w celu ułatwienia nauki używania Dim
. Widzę „Deklaracja w pamięci” jako lepsze znaczenie, ponieważ opisuje to, co robi w obecnych wersjach języka, ale nie jest to właściwe znaczenie.
W rzeczywistości u podstaw Basic Dim
był używany tylko do deklarowania tablic. W przypadku zmiennych regularnych nie użyto słowa kluczowego, zamiast tego wyprowadzono ich typ z nazwy. Na przykład, jeśli nazwa zmiennej kończy się, $
to jest to ciąg znaków (jest to coś, co można zobaczyć nawet w nazwach metod do VB6, na przykład Mid$
). I tak, używałeś Dim
tylko do nadania wymiaru tablicom (zauważ, że ReDim
zmienia rozmiar tablic).
Naprawdę, czy to ma znaczenie ? To znaczy słowo kluczowe ma swoje znaczenie w sztucznym języku. Nie musi to być słowo po angielsku ani w żadnym innym języku naturalnym. Może to oznaczać, co tylko chcesz, liczy się tylko to, że działa.
W każdym razie nie jest to do końca prawda. Ponieważ BASIC jest częścią naszej kultury, a zrozumienie, dlaczego tak się stało - mam nadzieję - pomoże poprawić naszą wizję świata.
Siedzę z mojego komputera z chęcią pomóc zachować ten niewielki fragment naszej kultury, który wydaje się zagubiony, zastąpiony zgadywaniem, co to było. I tak, wykopałem MSDN zarówno bieżące, jak i stare płyty CD z wersji 1998. Przeszukałem również dokumentację pod kątem starego QBasica [Musiałem użyć DOSBoxa] i udało mi się zdobyć instrukcję Darthmouth, wszystko po to, żeby o tym mówić Dim
. Ku mojemu rozczarowaniu, nie mówią, co oznacza Dim
skrót, a jedynie, jak to jest używane.
Ale zanim moja nadzieja zgasła, udało mi się znaleźć ten Przewodnik po systemie mikrokomputerowym BBC (który twierdzi, że pochodzi z 1984 roku i nie chcę w to wątpić). Mikrokomputer BBC zastosował wariant BASIC o nazwie BBC BASIC i jest to opisane w dokumencie. Chociaż nie mówi, co oznacza Dim
skrót, mówi (na stronie 104):
... możesz zwymiarować N $, aby mieć tyle wpisów, ile chcesz. Na przykład DIM N $ (1000) utworzy tablicę ciągów z miejscem na 1000 różnych nazw.
Jak powiedziałem, nie oznacza to, że Dim
oznacza wymiar, ale służy jako dowód na to, że skojarzenie Dim
z nim Dimension
było powszechne w momencie pisania tego dokumentu.
Teraz mam satysfakcjonującą niespodziankę później (na stronie 208), tytuł sekcji opisującej słowo kluczowe DIM (uwaga: nie wymieniony w treści) mówi:
Wymiar DIM tablicy
Więc nie dostałem cytatu „Dim oznacza…”, ale wydaje mi się, że jasne jest, że każdy porządny człowiek, który jest w stanie odczytać ten dokument, uzna to za Dim
wymiar.
Z nową nadzieją postanowiłem poszukać, jak Dim
został wybrany. Znów nie znalazłem konta na ten temat, ale udało mi się znaleźć ostateczny cytat:
Aby móc korzystać z tablicy, należy ją zdefiniować w instrukcji DIM (wymiar).
Można go znaleźć w ramach internetowych poradników użytkownika True BASIC na stronie internetowej True BASIC inc, firmy założonej przez Thomasa Eugene'a Kurtza , współautora BASIC.
Tak więc, w rzeczywistości, Dim
jest to skrót DIMENSION
i tak. To istniało wcześniej w FORTRAN, więc jest prawdopodobne, że zostało wybrane przez FORTRAN, jak powiedział Patrick McDonald w swojej odpowiedzi .
Dim sum as string = "this is not a chinese meal" REM example usage in VB.NET ;)
Dim
jest
Jest to skrót od Dimension, ponieważ pierwotnie był używany w BASIC-u do określania rozmiaru tablic.
DIM - (skrót od wymiaru) określ rozmiar tablic
Patrz: http://en.wikipedia.org/wiki/Dartmouth_BASIC
Część oryginalnego kodu źródłowego kompilatora BASIC, w której przeskakiwałby po znalezieniu DIM
polecenia, w którym wyraźnie widać pierwotną intencję słowa kluczowego:
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 $
...
Ref: http://dtss.dartmouth.edu/scans/BASIC/BASIC%20Compiler.pdf
Później wykorzystano go do deklarowania wszelkiego rodzaju zmiennych, gdy w późniejszych implementacjach dodano możliwość określenia typu zmiennych.
To oznacza Wymiar, ale ogólnie jest czytane jako „Utwórz zmienną” lub „Przydziel przestrzeń dla tego”.
Deklaracja zmienna. Początkowo oznaczało to „wymiar”, który nie jest terminem używanym w programowaniu (poza tym konkretnym słowem kluczowym) w znaczącym stopniu.
http://in.answers.yahoo.com/question/index?qid=20090310095555AANmiAZ
Dawno temu DIM zarezerwował pamięć dla macierzy, a kiedy pamięć była ograniczona, trzeba było uważać, jak z niej korzystać. Kiedyś napisałem (w 1981 r.) Program BASIC na TRS-80 Model III z 48 KB pamięci RAM. Nie działałby na podobnej maszynie z 16kb RAM, dopóki nie zmniejszyłem rozmiaru tablicy zmieniając instrukcję DIM
Słowo kluczowe Dim jest opcjonalne, gdy używamy go z modyfikatorami - Publiczny, Chroniony, Przyjaciel, Chroniony przyjaciel, Prywatny, Wspólny, Cienie, Statyczny, Tylko do odczytu itp. Np. - Static nTotal As Integer
W przypadku typu referencyjnego musimy użyć nowego słowa kluczowego, aby utworzyć nowe wystąpienie klasy lub struktury. np Dim lblTop As New System.Windows.Forms.Label
.
Instrukcja Dim może być używana bez typu danych po ustawieniu opcji wnioskowania opcji na Wł . W takim przypadku kompilator określa typ danych zmiennej na podstawie wyrażenia inicjującego. Przykład:
Option Infer On
Module SampleMod
Sub Main()
Dim nExpVar = 5
Powyższe stwierdzenie jest równoważne z- Dim nExpVar As Integer