C#中的泛型类型

普里西拉

对于类型Loan,Client和Book,我有三种类似的方法。我是一名编程学生,我想知道是否可以传入与这3个类匹配的泛型类型的参数,我的意思是在括号之间传递不同的类型,如<T>,对于这三个类只有一种方法。我试过了,<object>但是没有用。

public void LoadStoreLoans(ObservableCollection<Loan> loansCollection)
{
     IList<Loan> loans = db.Query<Loan>(); //db4o 
     loansCollection = loans != null ? new ObservableCollection<Loan>(loans) : new ObservableCollection<Loan>();
}

谢谢。

垫子

是的,如果您总是替换它,我建议使该集合成为返回值(这不是可观察的集合的目的):

public ObservableCollection<T> LoadStoreCollection<T>()
{
     IList<T> queried = db.Query<T>();
     return queried != null ? new ObservableCollection<T>(queried) : new ObservableCollection<T>();
}

对于对象的第一次尝试:我从未使用过db4o,但我认为它函数中使用给定的类型参数(LoadTQuery来推断要查询的表。给定会object产生错误,因为没有的表格object您需要指定替代类型或更好的替代类型-泛型类型参数-在执行过程中将其绑定到实际类型。当使用调用时T = Loan,该db.Query调用可以查询Loan表,就像您首先要写db.Query<Loan>的一样。

由于集合是问题中的一个参数,因此您可能会认为您会多次调用同一函数T,但是:始终使用new禁用可观察集合可以提供的所有好处来重新初始化同一可观察集合变量,例如,您永远不会收到一个更改了集合的事件(因为您监听替换后的集合),则无法将其绑定到控件,如果将其他对象注册到该事件,则会引入一个内存漏洞:)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

C#中的嵌套泛型问题

来自分类Dev

C#中泛型类型的缺点

来自分类Dev

C#中的条件泛型类型构造函数?

来自分类Dev

C#集合类型约束泛型

来自分类Dev

C#泛型并使用类型化方法中的非泛型版本

来自分类Dev

声明C#泛型类型方法

来自分类Dev

返回C#中作为集合的泛型类型

来自分类Dev

C#中的泛型和继承类型

来自分类Dev

在C#中检查T泛型类型具有属性S(泛型)

来自分类Dev

在C#中循环泛型类型

来自分类Dev

comman的C#泛型类型推断

来自分类Dev

泛型类型中的确切类型约束-C#

来自分类Dev

在C#中访问非泛型类型

来自分类Dev

C#中的递归泛型类型参数

来自分类Dev

C#中的泛型类型转换

来自分类Dev

C#中的双重泛型类型

来自分类Dev

可比类型的C#泛型

来自分类Dev

转换泛型类型C#

来自分类Dev

在c#中遍历泛型类型列表

来自分类Dev

在C#中的函数中访问泛型类型的属性

来自分类Dev

C#派生泛型类型参数

来自分类Dev

比较C#中2个泛型类型的对象

来自分类Dev

在C#中强制转换为任何类型的泛型

来自分类Dev

泛型类型中的确切类型约束-C#

来自分类Dev

C#泛型类型中的多态性

来自分类Dev

在 C# 中安全地转换泛型类型

来自分类Dev

c#获取泛型类中泛型类型参数的名称

来自分类Dev

C# 泛型对象不能添加到该泛型类型的列表中

来自分类Dev

如何根据 C# 中的 T 类型将泛型类型返回为精确类型