2009-04-18 92 views
6

Tôi chắc chắn điều này là đơn giản nhưng tôi không thể tìm thấy chuỗi chính xác để có được kết quả của google. Trong VB.NET sự khác nhau giữa = (bằng dấu) và: = (dấu hai chấm sau dấu bằng) là gì?Sự khác biệt giữa = và: =

Trả lời

16

Toán tử: = được sử dụng để chuyển đối số theo tên trong VB.Net. Ví dụ: lấy mã sau đây

Sub Foo(p1 As integer, p2 As String) 
    .. 
End Sub 

Sub Test() 
    Foo(p2:="foo",p1:=42) 
End Sub 

Nếu bạn nhìn kỹ các loại liên quan ở đây tôi đã vượt qua các giá trị không đúng thứ tự. Nhưng Bởi vì tôi đã ràng buộc các đối số theo tên bằng cách sử dụng: =, trình biên dịch sẽ truyền các giá trị đúng cách.

Toán tử = phụ thuộc vào ngữ cảnh trong VB.Net. Nó có thể là một toán tử gán hoặc so sánh. Ví dụ:

Dim x = 42 ' Assignment 
if x = 36 Then 
'Comparison above 
End if 
+0

Điều cần biết, cảm ơn bạn! –

2

= là so sánh VÀ là toán tử đã đặt, nhưng := chỉ là toán tử được đặt.

Hãy so sánh: If 7 = 7 Then ...

Set: Dim myInt As Integer = 7

Giả sử bạn có một đối tượng tùy chỉnh được gọi SuperList có constructor mất một biến gọi là initialCount, sau đó bạn có thể làm những việc như:

Dim myList As New SuperList(initialCount:=10) 

Chỉ đôi khi dễ dàng hơn khi đọc một hàm tạo khi bạn biết giá trị bạn đang đặt, đặc biệt nếu bạn có một hàm tạo như SomeConstructor(12, 432, True, False, 32)

Điều này có ý nghĩa hơn khi xem SomeConstructor(monthsInYear:=12, daysInYear:=432, leapYears:True, leapDays:=False, daysInMonth:=32)

Có lẽ nhiều hơn nhưng đây là những gì tôi nhận được từ đỉnh đầu.

+1

nhưng trong vb.net = là cả nhà khai thác thiết lập và so sánh –

+0

Phát biểu khai mạc của bạn không chính xác –

+0

Đã chỉnh sửa ... My Bad. –

3

Dấu bằng được sử dụng để gán và cũng là toán tử so sánh. Một ví dụ về chuyển nhượng là

a = 5 

một ví dụ về so sánh là

if (a = 5) then 
    ' do something here 
    end if 

Các: = được sử dụng đặc biệt để gọi chức năng với thiết thông số đặc biệt với giá trị theo tên. Ví dụ:

Sub studentInfo(ByVal name As String, _ 
     Optional ByVal age As Short = 0, _ 
     Optional ByVal birth As Date = #1/1/2000#) 

    Debug.WriteLine("Name = " & name & _ 
       "; age = " & CStr(age) & _ 
       "; birth date = " & CStr(birth)) 
End Sub 

Thông thường, bạn sẽ gọi hàm như thế này:

Call studentInfo("Mary", 19, #9/21/1981#) 

Nhưng bạn cũng có thể gọi hàm theo cách này:

Call studentInfo("Mary", birth:=#9/21/1981#) 
Các vấn đề liên quan