2009-06-23 70 views
241

DIM đứng trong Visual Basic là gì?DIM là gì đứng trong Visual Basic và BASIC?

+86

Đó là một câu hỏi hay trong thực tế. Không phải "nó làm gì" nhưng "tại sao nó được gọi theo cách này". –

+32

Crikey, cho anh chàng nghỉ ngơi. Không có quy tắc về những câu hỏi phức tạp phải có ở đây. –

+22

Tôi không đồng ý với ivan. Biết những gì Dim làm là một điều, biết những gì nó là viết tắt cho bạn biết thêm một chút về nó đến từ đâu. Đây có thể là một trợ giúp hữu ích cho việc học tập. –

Trả lời

270

Dim ban đầu (trong BASIC) đứng Kích thước, vì nó đã được sử dụng để xác định kích thước của một mảng.

(Việc thực hiện ban đầu của BASIC là Dartmouth BASIC, mà hậu duệ của FORTRAN, nơi DIMENSION được nêu ra.)

Ngày nay, Dim được sử dụng để xác định bất kỳ biến, không chỉ mảng, vì vậy ý ​​nghĩa của nó không phải là trực quan nữa không.

+57

một nền nhỏ có thể hữu ích. Trong bản phát hành ban đầu của các biến duy nhất cần thiết để khai báo là các mảng. Từ khóa "Dim" được sử dụng để đặt thứ nguyên của mảng này. –

+24

Tôi nhớ đọc một hướng dẫn lập trình cơ bản về gw vào đầu những năm 80 và tôi nhớ rõ ràng nó giải thích DIM có nghĩa là Khai báo trong bộ nhớ. Đọc hướng dẫn cơ bản Darthmouth từ '64 có câu lệnh LET và READ gán biến và giá trị của chúng và sau đó trong '68 DIM được bao gồm và trên thực tế được sử dụng cho mảng. http://www.bitsavers.org/pdf/dartmouth/BASIC_4th_Edition_Jan68.pdf – RandyMorris

+3

Một điều cần ghi nhớ là, trong phát triển ngôn ngữ sớm, nó đã được phổ biến để quá tải một từ khóa để có nhiều ý nghĩa. Vì, trong Basic ban đầu, "Dim" đã là một từ khóa được sử dụng để khai báo các biến mảng, từ khóa đã được mở rộng để bao gồm khai báo tất cả các biến. Việc giới thiệu một từ khóa mới đã bị tránh vì nhiều lý do, một trong số đó là họ không muốn phá vỡ các chương trình hiện tại đã sử dụng từ khóa mới làm tên biến. Hôm nay chúng ta có các công nghệ phân tích phức tạp hơn và các máy tính nhanh hơn, chúng ta không thấy các loại hạn chế đó. – zumalifeguard

12

Kích thước biến, về cơ bản bạn đang nói với trình biên dịch rằng bạn sẽ cần một biến loại này tại một số điểm.

7

Tuyên bố biến. Ban đầu, nó là viết tắt của "dimension", không phải là một thuật ngữ được sử dụng trong lập trình (bên ngoài từ khóa cụ thể này) đến bất kỳ mức độ đáng kể nào.

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

+7

Mảng của bạn là không thứ nguyên? Thật lạ lùng ... –

23

Viết tắt của Thứ nguyên, vì ban đầu nó được sử dụng trong BASIC để chỉ định kích thước của mảng.

DIM - (viết tắt của chiều) xác định kích thước của mảng

Ref: http://en.wikipedia.org/wiki/Dartmouth_BASIC

Một phần của mã nguồn biên dịch BASIC gốc, nơi mà nó sẽ nhảy khi tìm kiếm một lệnh DIM , trong đó bạn có thể thấy rõ ý định ban đầu của từ khóa:

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 $ 
     ... 

Tham chiếu: http://dtss.dartmouth.edu/scans/BASIC/BASIC%20Compiler.pdf

Sau đó nó được sử dụng để khai báo tất cả các loại biến, khi khả năng xác định loại cho các biến được thêm vào trong các triển khai gần đây hơn.

11

viết tắt của Thứ nguyên, nhưng thường được đọc là "Tạo biến" hoặc "Phân bổ không gian cho mục này".

5

Quay lại trong ngày Bộ nhớ dành riêng cho DIM cho mảng và khi bộ nhớ bị giới hạn, bạn phải cẩn thận cách bạn sử dụng bộ nhớ đó. Tôi đã từng viết (năm 1981) một chương trình BASIC trên TRS-80 Model III với RAM 48Kb. Nó sẽ không chạy trên một máy tương tự với RAM 16Kb cho đến khi tôi giảm kích thước mảng bằng cách thay đổi câu lệnh DIM

93

Dim có ý nghĩa khác nhau do nó.

tôi đã tìm thấy tài liệu tham khảo về Dim nghĩa "Khai báo Tưởng nhớ", tài liệu tham khảo phù hợp hơn là một tài liệu trên Dim Statement công bố Oracle như một phần của Siebel VB Language Reference. Tất nhiên, bạn có thể lập luận rằng nếu bạn không khai báo các biến trong bộ nhớ, nơi bạn làm điều đó? Có lẽ "Khai báo trong Mô-đun" là một lựa chọn tốt cho việc xem xét cách sử dụng Dim.

Theo ý kiến ​​của tôi, "Khai báo trong bộ nhớ" thực sự là ghi nhớ, được tạo để dễ dàng tìm hiểu cách sử dụng Dim. Tôi thấy "Tuyên bố trong bộ nhớ" là một ý nghĩa tốt hơn vì nó mô tả những gì nó làm trong các phiên bản hiện tại của ngôn ngữ, nhưng nó không phải là ý nghĩa thích hợp.

Trên thực tế, tại nguồn gốc của Basic Dim chỉ được sử dụng để khai báo mảng. Đối với các biến thông thường, không có từ khóa nào được sử dụng, thay vào đó, loại của chúng được suy ra từ tên của chúng. Ví dụ, nếu tên của biến kết thúc bằng $ thì nó là một chuỗi (đây là thứ mà bạn có thể thấy ngay cả trong các tên phương thức lên đến VB6, ví dụ Mid$). Và như vậy, bạn đã sử dụng Dim chỉ để cung cấp cho kích thước cho các mảng (lưu ý rằng ReDim thay đổi kích thước mảng).


Thực sự, Có vấn đề? Ý tôi là, nó là một từ khóa nó có ý nghĩa của nó bên trong một ngôn ngữ nhân tạo. Nó không phải là một từ trong tiếng Anh hoặc bất kỳ ngôn ngữ tự nhiên nào khác. Vì vậy, nó chỉ có thể có nghĩa là bất cứ điều gì bạn muốn, tất cả những gì quan trọng là nó hoạt động.

Nhưng dù sao, điều đó không hoàn toàn đúng. Vì BASIC là một phần của nền văn hóa của chúng tôi, và hiểu được lý do tại sao nó trở thành như vậy - tôi hy vọng - sẽ giúp cải thiện tầm nhìn của chúng ta về thế giới.


Tôi ngồi trong máy tính của mình với mong muốn giúp bảo tồn phần văn hóa của chúng ta dường như bị mất, thay thế bằng cách đoán xem nó là gì. Và vì vậy, tôi đã đào MSDN cả hiện tại và đĩa CD cũ từ phiên bản 1998. Tôi cũng đã tìm kiếm các tài liệu cho QBasic cũ [Đã phải sử dụng DOSBox] và quản lý để có được một số Darthmouth dẫn sử dụng, tất cả để tìm cách họ nói về Dim. Đối với sự thất vọng của tôi, họ không nói những gì hiện Dim đứng cho, và chỉ nói làm thế nào nó được sử dụng.

Nhưng trước khi hy vọng của tôi bị mờ, tôi đã tìm thấy điều này BBC Microcomputer System Used Guide (tuyên bố là từ năm 1984 và tôi không muốn nghi ngờ điều đó). BBC Microcomputer sử dụng một biến thể của BASIC gọi là BBC BASIC và nó được mô tả trong tài liệu. Mặc dù, nó không nói những gì hiện Dim đứng cho, nó nói (trên trang 104):

... bạn có thể tham số N $ để có bao nhiêu mục tùy thích. Đối với ví dụ , DIM N $ (1000) sẽ tạo một mảng chuỗi có không gian cho 1000 các tên khác nhau.

Như tôi đã nói, nó không nói rằng Dim là viết tắt của kích thước, nhưng đóng vai trò như bằng chứng để chứng minh rằng kết Dim với Dimension là một điều phổ biến tại thời điểm viết tài liệu đó.

Bây giờ, tôi nhận được một bất ngờ bổ ích sau này (tại trang 208), tiêu đề cho phần mô tả các từ khóa DIM (lưu ý: đó không được liệt kê trong các nội dung) cho biết:

chiều DIM của một mảng

Vì vậy, tôi không nhận được báo giá "Dim là viết tắt của ..." nhưng tôi đoán rõ ràng rằng mọi người có khả năng đọc tài liệu đó sẽ xem xét Dim .


Với hy vọng mới, tôi quyết định tìm kiếm cách Dim được chọn.Một lần nữa, tôi không tìm thấy một tài khoản về chủ đề này, tôi vẫn có thể tìm thấy một trích dẫn dứt khoát:

Trước khi bạn có thể sử dụng mảng, bạn phải xác định nó trong câu lệnh DIM (thứ nguyên).

Bạn có thể tìm thấy điều này như một phần của True BASIC Online User's Guides tại trang web của True BASIC inc, một công ty được thành lập bởi Thomas Eugene Kurtz, đồng tác giả của BASIC.


Vì vậy, Trong reallity, Dim là viết tắt của DIMENSION, và vâng. Điều đó tồn tại trong FORTRAN trước đây, vì vậy có khả năng nó đã được chọn bởi ảnh hưởng của FORTRAN là Patrick McDonald said in his answer.


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

Tôi cũng đã nghe "tuyên bố trong bộ nhớ". – jocull

6

DIM là viết tắt của Tuyên bố Tưởng nhớ DIM x As New Integer tạo ra một không gian trong bộ nhớ nơi mà các biến x được lưu trữ

3

ngắn cho Dimension. Đó là một loại biến. Bạn khai báo (hoặc "nói" Visual Basic) rằng bạn đang thiết lập một biến với từ này.

1

Từ khóa Dim là tùy chọn, khi chúng tôi sử dụng từ khóa có công cụ sửa đổi- Công khai, Được bảo vệ, Bạn bè, Người bạn được bảo vệ, Riêng tư, Được chia sẻ, Bóng, Tĩnh, ReadOnly, v.v. ví dụ: - Static nTotal As Integer

Để tham chiếu, chúng tôi phải sử dụng từ khóa mới để tạo phiên bản mới của lớp hoặc cấu trúc. ví dụ. Dim lblTop As New System.Windows.Forms.Label.

Tuyên bố mờ có thể được sử dụng với một kiểu dữ liệu khi bạn đặt Tùy chọn Suy ra trên. Trong trường hợp đó trình biên dịch sẽ nhập kiểu dữ liệu của một biến từ loại biểu thức khởi tạo của nó. Ví dụ:

Option Infer On 

Module SampleMod 

Sub Main() 

Dim nExpVar = 5 

Những tuyên bố trên là tương đương to- Dim nExpVar As Integer

+0

Chào mừng bạn đến với StackOverflow và cảm ơn bạn vì câu trả lời này, nhưng nó không thực sự mở rộng trên nhiều câu trả lời khác mà tất cả đều đưa ra cùng một câu trả lời. – Deanna

Các vấn đề liên quan