这可能是一个相对简单的疏忽,但我无法确定我是否真的被允许这样做,或者可能是一个合理的替代方案(在 VS2010、C# .Net 4.0 中使用)。如果可能的话,我强烈希望在构造函数中这样做。
这是我的课:
public class MyClass1<TOrderBy> : MyInterface1<MyType1, MyType2>
{
public MyClass1(IEnumerable<Guid> ids) : this(ids, 0, 10, a => a.Time, ListSortDirection.Ascending) { }
public MyClass1(IEnumerable<Guid> ids, int pageIndex, int itemsPerPage, Expression<Func<MyType2, TOrderBy>> orderBy, ListSortDirection sortDirection)
{
this.pageIndex = pageIndex;
this.itemsPerPage = itemsPerPage;
this.orderBy = orderBy;
this.sortDirection = sortDirection;
this.ids = ids != null ? ids.ToList() : new List<Guid>();
}
}
我得到错误
Cannot convert expression type 'System.DateTime' to return type 'TOrderBy'
悬停时a => a.Time
以及错误Cannot convert lambda expression to delegate type 'System.Func<MyType2,TOrderBy>' because some of the return types in the block are not implicitly convertible to the delegate return type
和Cannot implicitly convert type 'System.DateTime' to 'TOrderBy'
构建时。
正如您可能知道的那样,我正在尝试构建一个类,该类在构造函数中获取信息以对 IQueryable 进行排序和分页。我想通过重载的构造函数提供默认值。我该怎么做呢?