标签:
今天敲代码遇见一个问题,解决中用到了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(int num) { //方法体,想干什么就干什么,外面已经包裹了try catch return num.ToString(); }); MessageBox.Show(aaa); } public static string AAA(int num, Func<int, string> func) { try { return func(num); } catch (Exception ex) { return ex.Message; } }
标签:
原文地址:http://www.cnblogs.com/luludongxu/p/4453694.html