• c#委托教程干货


    委托这两天多少看懂点了,但是容易脑子发晕,总结下

    委托就是声明一个对象 让他帮助其他程序进行执行。如下进行了一个跨线程显示的richbox。我将使用各种方法进行显示。

     1         //声明 命名委托  无返回值
     2         delegate void MsgHandler(string txt);
     3         //MsgHandler msgdele, msgdels, msglambda;
     4 
     5         private void Form1_Load(object sender, EventArgs e)
     6         {
     7             //将方法放到线程中
     8             Thread trd = new Thread(new ThreadStart(Start));
     9             trd.Start();
    10         }
    11 
    12         void Start()
    13         {
    14             //命名方法实例化
    15             MsgHandler msgdele = new MsgHandler(MsgShow);
    16             
    17             //使用命名方法
    18             //msgdele("命名方法");             //线程内调用
    19             rbox.Invoke(msgdele,"命名方法");   //线程外调用
    20 
    21             //匿名方法  委托类型  委托变量 = delegate (【参数列表】){代码块};
    22             MsgHandler msgdels = delegate(string txt)
    23             {
    24                 MsgShow(txt);
    25             };
    26             
    27             
    28             //线程内调用
    29             //msgdels("匿名方法");
    30             
    31             //线程外调用
    32             rbox.Invoke(msgdele, "匿名方法");
    33             
    34             
    35             //lambda 声明方法
    36             MsgHandler msglambda = p => { MsgShow(p); };
    37             //msglambda("lambda");
    38 
    39             //线程外调用
    40             rbox.Invoke(msglambda, "lambda");
    41         }
    42 
    43 
    44         //执行方法
    45         private void MsgShow(string txt)
    46         {
    47             //和正常使用一样
    48             rbox.AppendText(txt + "
    ");
    49         }

     使用匿名委托的方式调用匿名方法

    1             //匿名方法调用
    2 
    3             Action<string> d = (string p) => { rbox.AppendText(p + "
    "); };
    4             rbox.Invoke(d, "输出");
    5 
    6             //匿名委托调用
    7 
    8             rbox.Invoke(new Action<string>(p => { rbox.AppendText(p + "
    "); Thread.Sleep(1000); }), "输入");
  • 相关阅读:
    Robot Framework(一)安装笔记
    Postman之获得登录的token,并设置为全局变量
    Postman之简单使用
    Postman之前言
    LoadRunner之使用JSEESIONID访问网站
    Jmeter之逻辑控制器/定时器
    android 解决小米手机上选择照片路径为null情况
    spring MVC学习之二
    Spring MVC学习一
    Struts学习总结(一)
  • 原文地址:https://www.cnblogs.com/uddgm/p/6221724.html
Copyright © 2020-2023  润新知