我的程序中有一個類SortableObservableCollection<T>
,它繼承自ObservableCollection<T>
。它有一個叫做Sort
功能:聲明屬性是函數委託的正確方法是什麼
public void Sort<TKey>(Func<T, TKey> keySelector, int skip = 0)
{
// . . .
}
我要聲明一個名爲Func<T, TKey>
類型的Key1
財產。我已經嘗試過:
public Func<T, TKey> Key1<T, TKey> { get; set; }
但是我得到左花括號的語法錯誤。該錯誤表示編譯器期待左括號。我試過把它作爲一個字段聲明:
public Func<T, TKey> Key1<T, TKey>;
但是然後編譯器給我在分號上相同的消息。
聲明此屬性的正確語法是什麼?
屬性不能像通用方法一樣泛型,請參閱[爲什麼C#不允許泛型屬性?](http://stackoverflow.com/questions/8620883/)。如果該屬性位於通用類的類(或結構或接口)內,則該屬性的類型當然可能取決於包含類的類型參數,但該屬性不能像通用方法那樣引入新的類型參數。 –
@JeppeStigNielsen:謝謝。雖然我沒有閱讀所有內容,但是你提供的鏈接解釋了爲什麼我不能做我想做的事情。 –