首页 新闻 会员 周边 捐助

c#委托中用action<T>这个怎么实例化

0
[已解决问题] 解决于 2018-05-19 15:02

List<Action<T>> _actions = new List<Action<T>>()

需要定义为全局变量,会报错,错误如下

请教下这个怎么解决?

凉夏诺浅的主页 凉夏诺浅 | 菜鸟二级 | 园豆:224
提问于:2018-05-17 09:46
< >
分享
最佳答案
0

把 T 改为具体的类型,比如:

List<Action<T>> _actions = new List<Action<T>>();
奖励园豆:5
dudu | 高人七级 |园豆:30939 | 2018-05-17 09:49

因为需要的就是不具体的类型

凉夏诺浅 | 园豆:224 (菜鸟二级) | 2018-05-17 09:52

@凉夏诺浅: 那就要把对应的类改为支持泛型的

public class Demo<T>
{
    private List<Action<T>> _actions = new List<Action<T>>();
}
dudu | 园豆:30939 (高人七级) | 2018-05-17 09:57

@dudu: 可以这样写么?感觉很怪异

凉夏诺浅 | 园豆:224 (菜鸟二级) | 2018-05-17 10:35
其他回答(2)
0

定义的时候你别实例化不就得了。

List<Action<T>> _action;

等用到的时候判断一下是否为null。

爱编程的大叔 | 园豆:30844 (高人七级) | 2018-05-17 09:58

额,,,,这样跟实例化也没啥区别

支持(0) 反对(0) 凉夏诺浅 | 园豆:224 (菜鸟二级) | 2018-05-17 10:36
0

用法也许本身就是error的(如果你没有做   特定的   删除)。

因为c#的委托就是——链。

你T不指定类型肯定不行三,除非你类本身是泛型。

花飘水流兮 | 园豆:13595 (专家六级) | 2018-05-17 12:35
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册