tôi đang cố gắng cho lần đầu tiên để tạo ra một phương pháp khuyến nông và tôi đang gặp một số rắc rối ... có lẽ các bạn có thể giúp đỡ :)biên dịch lỗi phương pháp C# mở rộng tham khảo tùy chỉnh
public static class Extentions
{
public static int myMethod(this MyClass c)
{
return 1;
}
}
sau đó khi tôi làm "MyClass.myMethod" tôi nhận được lỗi trình biên dịch q nói rằng phương thức không tồn tại ...
Tại sao lại như vậy?
Chỉ là sự tò mò của chúng tôi, tại sao có bao giờ cần phải gọi một phương pháp mở rộng trong một lớp học?Nếu bạn đang mã hóa lớp, tại sao phương pháp này lại là phần mở rộng ở vị trí đầu tiên? Không phải nó chỉ là một phần của lớp học? (Tôi hiểu bạn đã đăng nó để hiển thị cú pháp, nhưng tôi chỉ ciurious). – BFree
Lớp có thể triển khai giao diện, với phương thức mở rộng được xác định cho giao diện đó. Hoặc mã có thể nằm trong một phân lớp, với phương thức mở rộng được định nghĩa (riêng) đối với lớp cơ sở - có lẽ trong một assembly khác với lớp cơ sở. –
Điều này cuối cùng; Tôi sử dụng phương pháp này để cung cấp các phần mở rộng C# 3.0/.NET 3.5 cho một thư viện chính là .NET 2.0 - tức là cho phép lambda thay vì sử dụng tên thành viên. –