2008-10-07 44 views
6

Câu trả lời cho bài đăng gần đây (Bất kỳ cơ hội nào để bắt chước thời gian() Phương thức Ruby trong C#?) Sử dụng toán tử => trong ví dụ sử dụng. Nhà điều hành này làm gì? Tôi không thể định vị nó trong cuốn sách C# của mình, và thật khó để tìm kiếm các biểu tượng như thế này trực tuyến. (Tôi không thể tìm thấy nó.)Toán tử C# => có nghĩa là gì?

Trả lời

15

Nó không thực sự là một toán tử như vậy, nó là một phần của cú pháp cho các biểu thức lambda. Cụ thể => là bit tách các tham số khỏi phần thân của biểu thức lambda.

Cuốn sách của bạn có bao gồm C# 3.0 không? Nếu không, nó sẽ không bao gồm các biểu thức lambda. Nếu có, nó thực sự nên bao gồm chúng! Hy vọng rằng với thuật ngữ đúng, bạn sẽ có thể tìm thấy nó trong TOC hoặc chỉ mục.

EDIT: Thông tin thêm một chút: Biểu thức lambda là một đoạn đường cú pháp hoặc tạo một thể hiện của một đại biểu hoặc một cây biểu thức (cái mới là .NET 3.5). Các biểu thức Lambda gần như hoàn toàn thay thế các phương thức nặc danh (từ C# 2.0) mặc dù chúng không hỗ trợ khái niệm "Tôi không quan tâm đến các tham số" theo cách mà các phương thức nặc danh làm.

+0

Ah, cuốn sách của tôi không bao gồm C# 3.0, vì vậy không có thắc mắc tôi không thể định vị được! –

+0

Tôi có thể hỏi bạn ý của bạn là gì với '" Tôi không quan tâm đến các tham số "theo cách mà các phương thức nặc danh làm.'? Cảm ơn! – xanatos

+1

@xanatos: Ví dụ: để tạo 'EventHandler' không sử dụng người gửi hoặc arg, bạn có thể sử dụng' delegate {Console.WriteLine ("Called"); } 'mà không chỉ rõ một danh sách tham số. Có thể chuyển đổi thành * bất kỳ loại đại biểu * nào có loại trả về khoảng trống và tất cả các tham số "trong". –

1

Đó sẽ là một biểu thức lambda:

http://msdn.microsoft.com/en-us/library/bb397687.aspx

Một ví dụ là ở đây:

MyControl.OnMouseDown += (sender, e) => 
{ 
    // Do something in the mouse down event 
}; 

Ở đây tôi đã tạo ra một biểu thức lambda sự kiện đại biểu. Về cơ bản nó giúp tôi không phải tạo ra một hàm riêng biệt cho nó trong lớp.

1

Biểu thức lambda là một hàm ẩn danh có thể chứa các biểu thức và câu lệnh, và có thể được sử dụng để tạo các đại biểu hoặc các kiểu cây biểu thức.

Tất cả biểu thức lambda sử dụng toán tử lambda =>, được đọc là "đi tới". Phía bên trái của toán tử lambda xác định các thông số đầu vào (nếu có) và bên phải giữ khối biểu hiện hay tuyên bố

http://msdn.microsoft.com/en-us/library/bb397687.aspx

1

các => dấu hiệu được gọi là các nhà điều hành lambda.

Nó được sử dụng trong các biểu thức lambda để phân tách các biến đầu vào ở phía bên trái từ thân lambda ở bên phải.

MSDN

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