public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

public delegate void showMessage(string msg);

public static void showM(string m)

{

MessageBox.Show(m);

}

public string returnM(string m)

{

return m;

}

private void button1_Click(object sender, EventArgs e)

{

//3

showMessage s = new showMessage(showM);

s("xxx");

//1

Action<string> action = showM;

action("123");

//2

Action<string> a = X => showM(X);

a("aaaaaaaaaa");

//6

Action<string> ac = (x1) =>

{

MessageBox.Show(x1);

};

ac("111111111111111");

//6

Action<string> ac2 = delegate(string xx){

MessageBox.Show(xx);

};

ac2("222222222222");

//5

string m1 = "123";

textBox1.Invoke((Action<string>)delegate(string m)

{

textBox1.Text = m;

},m1);

textBox1.Invoke(new Action<string>((x4) =>

{

textBox1.Text = x4;

}), "aaaaax4");

//4 --需要return

Func<string, string> f = returnM;

MessageBox.Show(f("abc"));

//7

Func<string> func = delegate()

{

return "我是Func<TResult>委托出来的结果";

};

MessageBox.Show(func());

//8

Func<string, string> funcOne = delegate(string s3)

{

return s3;

};

MessageBox.Show(funcOne("我是Func<T,TResult>委托出来的结果"));

//9

Func<string, string, string> funcTwo = delegate(string value1, string value2)

{

return value1 + " " + value2;

};

MessageBox.Show(funcTwo("xxx", "我是Func<T,TResult>委托出来的结果"));

//10

Func<string, string, string> ff = (x1, x2) =>

{

return x1 + " " + x2;

};

MessageBox.Show(funcTwo("xxx", "我是Func<T,TResult>委托出来的结果"));

}

public IList<Model> ToList(DataTable dt, Func<DataRow, Model> func)
        {
            if (dt == null || dt.Rows.Count == 0)
            {
                return null;
            }
            IList<Model> list = new List<Model>(dt.Rows.Count);
            foreach (DataRow dr in dt.Rows)
            {
                list.Add(func(dr));
            }
            return list;
        } 
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!this.IsPostBack)
            {
                DataTable dt = newstable();
                IList<Model> list = ToList(dt, delegate(DataRow row)
                {
                    Model m = new Model();
                    m.f_id =Convert.ToInt32(row["f_id"]);
                    return m;
                });  
            }
        }
//////////

static void Main(string[] args)
        {
            IList<String> list = new List<String>();
            list.Add("1");
            list.Add("2");
            list.Add("3");
            list.Add("4");
            list.Add("5");
            Func<String, bool> f = x => x.Equals("2");
            IList<String> list2 = filter(f, list);
        }
        static IList<String> filter(Func<String, bool> exp, IList<String> list)
        {
            return list.Where(exp).ToList();
        }

}

action func用法记记的更多相关文章

  1. Action与Func 用法

    //vs2017 + framework4.6.2 //zip    https://github.com/chxl800/ActionFuncDemo //源文件git   https://gith ...

  2. VS2012 Unit Test(Void, Action, Func) —— 对无返回值、使用Action或Func作为参数、多重载的方法进行单元测试

    [提示] 1. 阅读文本前希望您具备如下知识:了解单元测试,了解Dynamic,熟悉泛型(协变与逆变)和Lambda,熟悉.NET Framework提供的 Action与Func委托.2.如果您对单 ...

  3. (C#) Action, Func, Predicate 等泛型委托

    (转载网络文章) (1). delegate delegate我们常用到的一种声明   Delegate至少0个参数,至多32个参数,可以无返回值,也可以指定返回值类型.   例:public del ...

  4. Lambda Action Func练习

    namespace lambda { delegate void TestDelegate(string s); class Program { static void Main(string[] a ...

  5. Delegate,Action,Func,匿名方法,匿名委托,事件 (转载)

    Delegate,Action,Func,匿名方法,匿名委托,事件 (转载) 一.委托Delegate 一般的方法(Method)中,我们的参数总是string,int,DateTime...这些基本 ...

  6. MVC ---- 理解学习Func用法

    //Func用法 public static class FuncDemo{ public static void TestFunc(){ //数据源 List<User> usList ...

  7. MVC中@Html.Action的用法

    MVC项目中如果有公共部分的代码就可以单独拿出来作为控件来用(比如头部和底部代码).跟ASP.NET中的ASCX实现的效果一样,但MVC比它方便的多. 想要实现该效果,需要知道@Html.Action ...

  8. MVC中@Html.Action的用法(类似自定义控件)

    MVC项目中如果有公共部分的代码就可以单独拿出来作为控件来用(比如头部和底部代码).跟ASP.NET中的ASCX实现的效果一样,但MVC比它方便的多. 一.@Html.Action的用法 @Html. ...

  9. c# Action,Func,Predicate委托

    System命名空间下已经预先定义好了三中泛型委托,Action,Func和Predicate,这样我们在编程的时候,就不必要自己去定义这些委托了 Action是没有返回值的 Func是带返回值的 不 ...

随机推荐

  1. Tomcat的SSL证书配置以及Tomcat+Nginx实现SSL配置

    把jks上传到java容器在的服务器上,路径只要不是webapps下就可以,然后到conf目录下server.xml里配置 <Connector port=" protocol=&qu ...

  2. {POJ}{3971}{Scales}{O(N)动态规划}

    题意:给定一堆2二进制砝码,给定一个物品,要求在天平两端加入物品和砝码使之平衡,求可能数. 思路:一开始想到了直接用数学原理,结果没证出来.做如下思考,此题需要用二进制: (1)设物品重量为w,加入的 ...

  3. VC++ 如何使窗体最大化或是最小化

    最大化最小的使得的函数是 ShowWindow函数 ShowWindow(SW_SHOWMINIMIZED);//最小化 ShowWindow(SW_SHOWMAXIMIZED);//最大化 Show ...

  4. 学习C:打印输入中单词长度的水平方向直方图

    #include <stdio.h>#define IN 1#define OUT 0#define MAXWL 16 main() { /*打印输入单词长度的水平直方图*/ int c, ...

  5. LDA(文档主题模型)

    LSA latent semantic analysis 映射词-文档到一个低维隐语义空间 比较词和文档在低纬空间的相似性 topic 是 Vocab 上的概率分布(符合多项式分布) 文档到主题的一个 ...

  6. MonoDev 冷门而好用的功能

    [MonoDev 冷门而好用的功能] 1.Ctrl + B.跳转到对应的{}.(). 2.View -> Editor Layout -> 2 Columns.双屏工作. 3.Editr ...

  7. The processing instruction target matching ''[xX][mM][lL]" is not allowed

    报错的来源是: <?xml version="1.0" encoding="UTF8"?> 解决方案::,一般是WSDL的头文件的格式出了问题,比如 ...

  8. 自适应UITableView的Cell高度问题

    1.自己计算Cell的高度返回: 1>model中计算: // // InfoModel.h // OCDemo // // Created by 思 彭 on 16/12/27. // Cop ...

  9. SQL中EXISTS怎么用[转]

    SQL中EXISTS怎么用 1 2 3 4 分步阅读 EXISTS用于检查子查询是否至少会返回一行数据,该子查询实际上并不返回任何数据,而是返回值True或False 方法/步骤 1 EXISTS用于 ...

  10. 转载:Bootstrap之表格checkbox复选框全选

    转:http://blog.csdn.net/shangmingchao[商明超的博客] 效果图: HTML中无需添加额外的一列来表示复选框,而是由JS完成,所以正常的表格布局就行了: 版权声明:如需 ...