首页 新闻 会员 周边

List<Func<int>> actions = new List<Func<int>>();

0
[已解决问题] 解决于 2015-01-10 08:30

 List<Func<int>> actions = new List<Func<int>>();

Func<int>不是方法吗?怎么能作为类型?Func<int>在这里是什么?

int[] data = new int[] { 1, 2, 3, 4, 5 };
            List<Func<int>> actions = new List<Func<int>>();
            foreach (int x in data)
            {
                actions.Add(()=> x);
            }
            foreach (var foo in actions)
            {
    
                Console.WriteLine(foo());
              
            }

博学多思的主页 博学多思 | 初学一级 | 园豆:76
提问于:2015-01-09 22:16
< >
分享
最佳答案
0

Func<int>是委托,是无参数、返回值类型为int的委托。

推荐园子里的几篇博文:

Func与Action

C#委托Action、Action<T>、Func<T>、Predicate<T>

C#委托的介绍(delegate、Action、Func、predicate)

奖励园豆:5
dudu | 高人七级 |园豆:31007 | 2015-01-09 22:40

 actions.Add(()=> x);是什么意思?

请问这里的()代表什么?

博学多思 | 园豆:76 (初学一级) | 2015-01-09 22:46

@博学多思: () => x 是用Lamdba表示的匿名方法,参考.NET中的Lambda表达式与匿名方法

dudu | 园豆:31007 (高人七级) | 2015-01-09 22:53

@dudu: 十分感谢!!!

博学多思 | 园豆:76 (初学一级) | 2015-01-09 22:54
其他回答(1)
0

委托就是一个类型

吴瑞祥 | 园豆:29449 (高人七级) | 2015-01-09 22:40

    actions.Add(()=> x);是什么意思?

支持(0) 反对(0) 博学多思 | 园豆:76 (初学一级) | 2015-01-09 22:44

 actions.Add(()=> x);是什么意思?

请问这里的()代表什么?

支持(0) 反对(0) 博学多思 | 园豆:76 (初学一级) | 2015-01-09 22:44
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册