2009-09-18 20 views
5

Mọi ý tưởng? Tôi đánh dấu nó là tĩnh nhưng nó không hoạt động!Tôi không thể sử dụng phương thức khuyến nông của mình (C#)

class ExtensionMethods 
{ 
    public static int Add(this int number, int increment) 
    { 
     return number + increment; 
    } 
} 
+0

Bạn có câu lệnh 'using ExtensionMethods' ở nơi bạn muốn sử dụng mã này không? – pgb

+1

Bạn nên kiểm tra cảnh báo trình biên dịch cho CS1106. –

Trả lời

19

Bạn đang thiếu một lớp tĩnh. Trình biên dịch nên đã nói với bạn điều này?

public static class ExtensionMethods 
+3

đây là giải pháp, nhưng trình biên dịch sẽ không cho bạn biết điều này. theo như nó có liên quan, cú pháp là hợp lệ. nó không có ý tưởng rằng bạn đang cố gắng để làm cho một phương pháp mở rộng. –

+3

Có thể và không - http://msdn.microsoft.com/en-us/library/bb397656.aspx – ICR

11

Tôi nghĩ rằng, nó cần phải được định nghĩa trong một lớp tĩnh:

namespace MyNameSpace 
{ 
    public static class ExtensionMethods 
    { 
     public static int Add(this int number, int increment) 
     { 
      return number + increment; 
     } 
    } 
} 

Bạn cũng phải bao gồm một using MyNameSpace; trong file mã bạn muốn sử dụng chúng trong, trừ khi đó là trong cùng một không gian tên

+0

Phát ngay. Các phương thức mở rộng chỉ có thể được định nghĩa trên các lớp tĩnh. –

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