2011-12-01 7 views

Trả lời

29

Cũ loại notifier - see this

Một số cái cũ khác:

& -> Long 
% -> Integer 
# -> Double 
! -> Single 
@ -> Decimal 
$ -> String 

Tuy nhiên tồn tại trong VB .Net vì lợi ích tương thích ngược ...

+2

Vì lợi ích của sự hoàn chỉnh, các [MSDN Link] (http://msdn.microsoft.com/en-us/library/s9cz43ek % 28v = VS.100% 29.aspx). –

+1

Nội dung bạn đang tham chiếu là Nhập ký tự, làm cho dim s $ và dim s thành chuỗi giống nhau. Xem câu trả lời của Heinzi. – dbasnett

23

Trong VB "cổ điển", có hai phiên bản của các hàm dựng sẵn chuỗi. Hãy để tôi sử dụng Left làm ví dụ:

  • Left(s, length) mất một biến như tham số đầu tiên và trả về một biến thể .
  • Left$(s, length) lấy một số chuỗi làm tham số đầu tiên và trả về một chuỗi .

Sự khác biệt này vẫn tồn tại trong VBA hiện đại.

Tôi nghi ngờ rằng lý do đằng sau điều này là các chuỗi trong VBA không thể là Null (lưu ý rằng Null <> ""). Vì vậy, khi giao dịch với các trường cơ sở dữ liệu nullable, bạn phải sử dụng các biến biến. Biến thể biến có thể lấy bất kỳ giá trị nào, bao gồm tất cả các giá trị tích phân (chuỗi, số nguyên, ...) cũng như một số giá trị đặc biệt như Null, Empty hoặc Missing. Các hàm không phải $ cho phép bạn sử dụng các biến thể làm đầu vào và nhận các biến thể làm đầu ra. Ví dụ: Left(Null, ...) trả về Null.

Trong VB.NET, sự khác biệt này không còn cần thiết nữa: Các hàm không phải $ làm chính xác giống như các hàm $, chỉ được giữ để tương thích ngược với mã cũ.

6

gì Heinzi nói và làm sáng tỏ việc kinh doanh loại vật

Dim s$ = "FooBar" 'dim s as String = "FooBar" 

    Dim r As String 
    Stop 

    r = Replace$(s, "Bar", "") 
    '.Net equivalent 
    r = s.Replace("Bar", "")