2012-04-13 34 views

Trả lời

41

Nếu toàn bộ giao diện nên generic:

public interface IExample<T> 
{ 
    int GetInteger(); 
    T GetAnything(); 
} 

Nếu chỉ phương pháp này cần phải được chung:

public interface IExample 
{ 
    int GetInteger(); 
    T GetAnything<T>(); 
} 
+2

+1. Tôi hoàn toàn quên rằng phương pháp có thể có tham số kiểu riêng của nó :) – flai

+2

Nếu sử dụng .NET 4.0 tốt hơn để sử dụng hiệp phương sai nếu có thể: giao diện công cộng IExample , T GetAnything (); – dvvrd

+1

Tôi làm cách nào để triển khai chức năng giao diện? – River

5
public interface IExample<T> 
{ 
    int GetInteger() 
    T GetAnything(); 
} 

Tadaa :)!

Hoặc cách khác, bạn chỉ có thể trả về System.Object và truyền cho bất kỳ thứ gì bạn muốn.

+2

Điều này khá xấu - 'trả về System.Object và truyền cho bất kỳ thứ gì bạn muốn.' – sll

+0

Đừng nghĩ rằng đây là những gì anh ta yêu cầu – NominSim

3

Nếu bạn không muốn toàn bộ giao diện (IExample) để được chung chung, sau đó bạn cũng có thể thực hiện điều này quá

public interface IExample 
{ 
    int GetInteger(); 
    T GetAnything<T>();  
} 
+1

chỉ để làm rõ, nếu bạn khai báo phương thức theo cách này trong giao diện, khi bạn triển khai nó trên lớp thực hiện giao diện, bạn sẽ phải giữ nó như một phương thức chung và bạn sẽ chỉ có thể xác định kiểu của nó khi bạn gọi phương thức trên đối tượng được khởi tạo từ lớp thực hiện giao diện, chứ không phải trong chính lớp đó – daleotar

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