2012-03-06 26 views

Trả lời

27

Vâng, đó là có thể. Trong thực tế, tất cả các bạn đang mất là getter/setter trên indexer của bạn. Chỉ cần thêm nó như sau:

interface IIndexable<T> 
{ 
    T this[string index] {get; set;} 
} 
10

Từ MSDN:

public interface ISomeInterface 
{ 
    //... 

    // Indexer declaration: 
    string this[int index] 
    { 
     get; 
     set; 
    } 
} 

Indexer thể được khai báo trên một giao diện (C# tham khảo). Accessors của indexers giao diện khác với accessors của indexers lớp trong cách sau: accessors

  • Interface không sử dụng từ bổ nghĩa.
  • Trình truy cập giao diện không có phần thân.
1

Một chút giao diện chung chung hơn (lấy từ IDictionary<,>), sẽ là:

interface IIndexable<TKey, TValue> 
{ 
    TValue this[TKey key] { get; set; } 
} 

Tôi chỉ tự hỏi tại sao họ không bao gồm nó trong mscorlib, do đó IDictionary có thể thực hiện nó. Nó sẽ có ý nghĩa.

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