2011-11-09 40 views
9

Tôi đã chơi xung quanh với các sự kiện và các đại biểu và cần phải nâng cao sự kiện của tôi không đồng bộ, vì vậy tôi đã sử dụng:không đối tượng @object có ý nghĩa gì

public event EventHandler OnHelloEvent; 

public void Raise() 
{ 
    IAsyncResult syncResult = OnHelloEvent.BeginInvoke(this, new EventArgs(), null, null) 

Trong Intellisense, cuối cùng null được nêu để là object @object. Tôi đã không đi qua này trước và dường như không thể tìm thấy bất kỳ tài liệu hướng dẫn cho nó.

Điều này có nghĩa là gì? Nó khá hữu ích?

+4

Xem http://msdn.microsoft.com/en-us/library/x53a06bb%28v=vs.71%29.aspx: * "Từ khóa được xác định trước định danh dành riêng có ý nghĩa đặc biệt đối với trình biên dịch. không thể được sử dụng làm số nhận dạng trong chương trình của bạn trừ khi chúng bao gồm @ làm tiền tố. Ví dụ: * '@ if' * là số nhận dạng hợp pháp nhưng *' if' * không phải là từ khóa. "* – Otiel

Trả lời

19

Dấu hiệu @ có thể được coi là ký tự "thoát". Vì object là từ khóa trong C#, bạn không thể sử dụng nó làm tên biến. Tuy nhiên, hãy thêm tiền tố với ký tự @ và nó không còn là từ khóa nữa, chỉ là tên biến hợp lệ!

+0

Brilliant Tôi đang tìm kiếm –

9

@ cho phép bạn sử dụng từ khóa dành riêng làm tên của thông số.

0

Biểu tượng @ chỉ là tiền tố cho phép bạn sử dụng số nhận dạng được đặt trước làm tên biến.

Vì vậy, object @object, xác định biến của đối tượng kiểu được gọi là đối tượng.

2

Mọi người trả lời "Điều này có nghĩa là gì?" nhưng không ai trả lời "Có ích không?"

Trong hầu hết các trường hợp, câu trả lời là Không. Bạn nên không sử dụng tính năng này.

Có một vài ngoại lệ đặc biệt. Tắt đầu của tôi:

  1. Sự cố tương thích với mã của người khác: Mã của người khác yêu cầu bạn phải đặt tên có từ dành riêng. Có lẽ mã của họ đã được viết bằng một ngôn ngữ với các từ dành riêng khác với C#.
  2. Mã do máy tính tạo: Nó không làm tổn thương để sử dụng biểu tượng @. Nếu bạn hoang tưởng về xung đột từ dành riêng, bạn có thể quyết định rằng tất cả các biến trong mã do máy tính tạo sẽ sử dụng biểu tượng @. Hoặc có thể bạn đang cho phép chương trình không phải C# tạo các chương trình C# thông qua một ngôn ngữ kịch bản hoặc bất kỳ thứ gì và bạn muốn hỗ trợ các biến có tên là class.
Các vấn đề liên quan