2010-05-21 31 views
8

OK, tôi đã có thể hiểu lầm gì đó ở đây nhưng, như xa như tôi có thể nhìn thấy ...Bạn có thể tạo Phương thức tiện ích mở rộng tĩnh/được chia sẻ không?

phương pháp
  • Một phần mở rộng phải được chứa trong một module, không phải là một lớp
  • Bạn không thể kiếm các phương thức trong các mô-đun Tĩnh/Chia sẻ
  • Vì vậy, bạn không thể sử dụng một phương thức tiện ích mở rộng trên một lớp mà không cần khởi tạo nó.

Nói cách khác bạn không thể thực hiện một phương pháp khuyến nông trên chuỗi được gọi là "MyExtensionMethod" và sử dụng:

String.MyExtensionMethod("String") 

Nhưng thay vì ..

Dim test As String 
test.MyExtensionMethod("string") 

Đây có phải là đúng? Hoặc là có một cách tôi có thể nhận được các phương pháp mở rộng để làm việc như phương pháp tĩnh?

Trả lời

9

Bạn đã chính xác. Các phương thức mở rộng chỉ có thể hoạt động trên các thể hiện của một kiểu.

Và không, không may là không có cách nào xảo quyệt để viết các phương thức mở rộng tự hành động theo kiểu, hoạt động như các phương thức tĩnh.

+1

Cảm ơn câu trả lời. Có vẻ như một giám sát đáng kinh ngạc mặc dù, vì hầu hết các "loại trợ giúp" chức năng trên các đối tượng khuôn khổ hiện có chức năng như tĩnh: ( –

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