【发布时间】:2020-07-14 14:05:35
【问题描述】:
我有一个接收和动作的方法(以前是动作
public void Runaction<T>(Action<T> _ActionCallback)
{
StackAction.Add(_ActionCallback);
...etc
}
以前,我的列表 stackAction 是:
readonly List<Action<bool>> StackAction= new List<Action<bool>>()
但现在我需要这个列表来允许类型 bool 但也允许 byte[]
当我宣布
readonly List<Action<T>> StackAction= new List<Action<T>>()
它返回 T 不存在。
满足这种需求的解决方法是什么?
【问题讨论】:
-
如果您在方法中声明列表,它应该可以工作。否则,你需要让你的类通用:
class MyClass<T> -
声明整个类是通用的。但是如果你需要处理不同的类型,泛型可能不是最好的解决方案
-
您希望能够将这两种类型添加到同一个列表中吗?
-
@Knoop 没错!
-
使用
Action<object>进行强制转换可能会有所帮助
标签: c# list generics delegates polymorphism