Это зависит; Вы хотите указать тип item или тип collection ? Если вы просто хотите указать элемент, то T
относится только к элементу:
public ObservableCollection<T> SomeMethod<T>()
{
var data = new ObservableCollection<T>();
data.Add(default(T)); // or whatever
return data;
}
Затем вы можете использовать ObservableCollection<Order> orders = SomeMethod<Order>()
и т. Д. Если вам нужно указать тип коллекции, вам могут потребоваться более общие типы ...
public TList SomeMethod<TList, T>()
where TList : class, IList<T>, new()
{
var data = new TList();
data.Add(default(T)); // or whatever
return data;
}
Однако назвать это сложнее. Он не может делать вывод типа, если список не является аргументом, то есть вы должны указывать TList
и T
при его вызове ... не очень.