У меня есть пара классов. Они буквально копировать/вставить из моего проекта:Компактный синтаксис для статического метода Create() для универсального класса?
public static class PageResult
{
public static PageResult<T> Create<T>(int totalCount, IList<T> items)
{
return new PageResult<T>()
{
TotalCount = totalCount,
Items = items,
};
}
}
public class PageResult<T>
{
public int TotalCount { get; set; }
public IList<T> Items { get; set; }
}
Причина, почему я сделал это так, что я мог бы использовать PageResult.Create(5, listOf5Items)
в отличие от любого другого синтаксиса более длительного. Я не поместил метод Create в класс PageResult(T)
, потому что я уверен, что вместо этого мне нужно ввести PageResult<int>(5, listOf5Numbers)
, и это лишние пять символов ...
Но наличие двух классов для этого кажется довольно хромым. Есть ли способ получить более компактный синтаксис, не имея класс throwaway для его хранения?
Если это хромает, хороший фрагмент базовой библиотеки .NET также хромает, потому что этот шаблон используется совсем немного и фактически продвигается в [Framework Design Руководящие принципы] (http://blogs.msdn.com/b/kcwalina/archive/2004/03/15/89860.aspx) (более старый, но по-прежнему актуальный). –