gpt4 book ai didi

c# - 嵌套泛型

转载 作者:行者123 更新时间:2023-11-30 15:50:01 25 4
gpt4 key购买 nike

我以前问过这个问题,但我没答对,所以没有回答。

如果我有一个返回 ObservableColletion<T> 的方法我将如何在另一个通用方法中使用它。

method2<ObservableCollection<T>>(){} 

是要走的路。

我正在尝试创建一个通用的 resultEventArgs,它将 Ado.NET 数据服务查询的结果传递给所有订阅者。在其中我希望能够传递返回的强类型 EntityCollection [Ado.NET 1.5 生成]

所以是的,我的问题是措辞 ObservableCollection因为我不想让整个 ado.net 数据服务困惑。

干杯戴夫

最佳答案

视情况而定;您要指定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;
}

然而,调用它比较棘手。除非列表是参数,否则它不能进行类型推断,这意味着您必须同时指定 TListT调用它时……不漂亮。

关于c# - 嵌套泛型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1024001/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com