在C#中使用List <T>(泛型)

真七

这是一个非常基本的问题,但是我以前从未研究过泛型,因此发现自己需要使用它。不幸的是,我现在没有时间阅读任何教程,到目前为止,我对相关问题的答案还不算是基本知识,所以我们去了:

假设我有以下几点:

List<MyClass1> list1 = getListType1();
List<MyClass2> list2 = getListType2();

if (someCondition)
    MyMethod(list1);
else
    MyMethod(list2);

而且当然

void MyMethod(List<T> list){
    //Do stuff
}

好吧,我以为会这么简单,但显然并非如此。VS警告我

无法从用法推断方法MyMethod(System.Collections.Generic.List)的类型参数

如果我仍然编译它,我会得到一个

找不到类型或名称空间名称“ T”

错误。

在我找到的许多答案中,我读到我必须声明是什么T,这是有道理的,但我不太了解在如此简单的情况下如何这样做。当然,这些答案在我的脑海中产生了更多的问题,但是现在我只想解释一下我做错了什么(除了没有研究泛型之外)以及如何做对了。

Mattomtom

您需要T针对该方法进行声明,然后C#可以识别该方法正在接收的类型。尝试这个:

void MyMethod<T>(List<T> list){
    //Do stuff
}

然后通过以下方式调用它:

if (someCondition)
    MyMethod(list1);
else
    MyMethod(list2);

如果要传递给该方法的所有类都共享一个公共基类,则可以使其更加严格。

void MyMethod<T>(List<T> list) where T : MyClassBase

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何从泛型方法<T>() 返回泛型 List<T>

来自分类Dev

在C#中使用泛型列表<T>时无法编译

来自分类Dev

使用泛型Func <T>的异步方法

来自分类Dev

使用接口的泛型T列表

来自分类Dev

C#泛型类作为参数,与泛型类的调用方法具有相同的T

来自分类Dev

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

来自分类Dev

C#泛型类作为参数,与泛型类的调用方法具有相同的T

来自分类Dev

何时在泛型方法的声明中使用<T>

来自分类Dev

C# 泛型,其中 T 类:(继承类)

来自分类Dev

C#泛型:“ X <T>其中T:X <T>”泛型类型约束的意义是什么?

来自分类Dev

泛型乐趣:where typeof(List <T>)!= typeof(List <T>),并使用Reflection获得具有泛型参数的泛型方法

来自分类Dev

一个泛型类使用expression <T,bool>方法创建泛型扩展

来自分类Dev

如何在C#中使用泛型将类型静态绑定在一起(如TypeToType <T>)?

来自分类Dev

泛型 list<T> 问题导致的函数重载

来自分类Dev

我可以在C#中根据使用的类型(T)使用泛型的特定实现

来自分类Dev

存储泛型 T 类型类的 C++ 向量

来自分类Dev

T泛型无法使用构建器模式

来自分类Dev

将Comparable <T>与泛型类一起使用

来自分类Dev

如何使用C#泛型将类的对象转换为T类型的对象?

来自分类Dev

如何使用C#泛型将类的对象转换为T类型的对象?

来自分类Dev

什么时候应该使用C#泛型Func <T,Tresult>?

来自分类Dev

泛型执行请求,使用泛型

来自分类Dev

泛型类使用泛型参数

来自分类Dev

C#-将泛型接口转换为传递在运行时确定的类型<T>的泛型类

来自分类Dev

C#将抽象类<T>中的泛型T转换为动态

来自分类Dev

如何使用泛型方法将List <T>转换为数组t [](对于基本类型)?

来自分类Dev

如何使用泛型方法将List <T>转换为数组t [](对于基本类型)?

来自分类Dev

如何在C#中的泛型类中使用泛型类的对象?

来自分类Dev

在C#接口中使用泛型

Related 相关文章

  1. 1

    如何从泛型方法<T>() 返回泛型 List<T>

  2. 2

    在C#中使用泛型列表<T>时无法编译

  3. 3

    使用泛型Func <T>的异步方法

  4. 4

    使用接口的泛型T列表

  5. 5

    C#泛型类作为参数,与泛型类的调用方法具有相同的T

  6. 6

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

  7. 7

    C#泛型类作为参数,与泛型类的调用方法具有相同的T

  8. 8

    何时在泛型方法的声明中使用<T>

  9. 9

    C# 泛型,其中 T 类:(继承类)

  10. 10

    C#泛型:“ X <T>其中T:X <T>”泛型类型约束的意义是什么?

  11. 11

    泛型乐趣:where typeof(List <T>)!= typeof(List <T>),并使用Reflection获得具有泛型参数的泛型方法

  12. 12

    一个泛型类使用expression <T,bool>方法创建泛型扩展

  13. 13

    如何在C#中使用泛型将类型静态绑定在一起(如TypeToType <T>)?

  14. 14

    泛型 list<T> 问题导致的函数重载

  15. 15

    我可以在C#中根据使用的类型(T)使用泛型的特定实现

  16. 16

    存储泛型 T 类型类的 C++ 向量

  17. 17

    T泛型无法使用构建器模式

  18. 18

    将Comparable <T>与泛型类一起使用

  19. 19

    如何使用C#泛型将类的对象转换为T类型的对象?

  20. 20

    如何使用C#泛型将类的对象转换为T类型的对象?

  21. 21

    什么时候应该使用C#泛型Func <T,Tresult>?

  22. 22

    泛型执行请求,使用泛型

  23. 23

    泛型类使用泛型参数

  24. 24

    C#-将泛型接口转换为传递在运行时确定的类型<T>的泛型类

  25. 25

    C#将抽象类<T>中的泛型T转换为动态

  26. 26

    如何使用泛型方法将List <T>转换为数组t [](对于基本类型)?

  27. 27

    如何使用泛型方法将List <T>转换为数组t [](对于基本类型)?

  28. 28

    如何在C#中的泛型类中使用泛型类的对象?

  29. 29

    在C#接口中使用泛型

热门标签

归档