我的程序中有一个类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:谢谢。虽然我没有阅读所有内容,但是你提供的链接解释了为什么我不能做我想做的事情。 –