C# Func和匿名方法 简单使用

今天敲代码遇见一个问题,解决中用到了C#的Func和匿名方法,发现挺好用的

定义一个这样的方法可以避免重复写try catch

这里用到了Func<int,string> ,它其实就是一个C#内部已经定义好的委托类型,尖括号里是int是委托的参数类型,string是返回值类型,Func可以有很多个参数,无论有几个,最后一个固定是返回值,前几个都是参数

Action<>和Func<>一样,只是不包含返回值,所有的都是参数类型

delegate(int num)是匿名方法,999是传入的int参数,这其实也是委托实现的我感觉,用匿名方法可以避免写方法,在一些地方用着很方便^_^

private void button1_Click(object sender, EventArgs e)
        {
            string aaa = AAA(999, delegate()
            {
                //方法体,想干什么就干什么,外面已经包裹了try catch
                return "";
            });
            MessageBox.Show(aaa);
        }

        public static string AAA(int num, Func<string> func)
        {
            try
            {
                return func();
            }
            catch (Exception ex)
            {
                return "num:"+num+" Exception:"+ex.Message;
            }
        }