【.NET基础加强第八课--委托】

这篇具有很好参考价值的文章主要介绍了【.NET基础加强第八课--委托】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

委托(Delegate)

委托(Delegate) 是存有对某个方法的引用的一种引用类型变量

委托操作顺序

1,定义一个委托类型
2,声明了一个委托变量 并且new 了一个委托对象,并且把方法传进去
3,调用委托相当于调用了方法

实例

//2, 声明了一个委托变量 md ,并且new 了一个委托对象,并且把方法M1传进去
using System.Text;
using System.Text.RegularExpressions;

MyDelegate md = new MyDelegate(M1);
// 3, 调用md委托相当于调用了M1 方法;

while (true)
{
Console.WriteLine(“请输入一个邮箱”);
string email = Console.ReadLine();
email = Regex.Replace(email, @“(\w+)(@\w+.\w+)”, ReplaceMethod,
RegexOptions.ECMAScript);
}

Console.ReadKey();

static void M1()
{
Console.WriteLine(“M1方法”);
}

static string ReplaceMethod(Match match)
{
string uid = match.Groups[1].Value;
string others = match.Groups[2].Value;
StringBuilder sb = new StringBuilder();
for (int i = 0; i < uid.Length; i++)
{
sb.Append(“*”);
}
return sb.ToString() + others;

}

//1. 定义一个委托类型,用来保存无参数,无返回值的方法
public delegate void MyDelegate();

public delegate void WriteTimeDelegate();
public class MyClass
{

}

多播委托—委托链

实例

Action action = M1;
//action(“tttt”);
action += M2;
action += M3;
action += M4;

action(“hello”);

Console.ReadKey();

static void M1(string msg)
{
Console.WriteLine(msg);
}

static void M2(string msg)
{
Console.WriteLine(msg);
}

static void M3(string msg)
{
Console.WriteLine(msg);
}

static void M4(string msg)
{
Console.WriteLine(msg);
}

实例委托传值

代码明细
Form1

public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

    private void button1_Click(object sender, EventArgs e)
    {
        Form2 form2 = new Form2(textBox1.Text.Trim(),UpdateTextBox) ;
        form2.ShowDialog();
    }


    UpdateTextDelegate md = new UpdateTextDelegate(D1);


    
    static void D1(string value)
    {

    }


    public  void UpdateTextBox(string val)
    {
        textBox1.Text = val;
    }

    private void Form1_Load(object sender, EventArgs e)
    {

    }
}

public delegate void UpdateTextDelegate(string val);

Form2
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}

    private UpdateTextDelegate _update;

    public Form2(string value,UpdateTextDelegate updateText):this()
    {
        this.textBox1.Text = value;
        this._update = updateText;
    }

    private void button1_Click(object sender, EventArgs e)
    {
        // 将当前窗体中的文本框中的值传给 窗体1
        this._update(textBox1.Text.Trim());
        this.Close();
       
    }

    private void Form2_Load(object sender, EventArgs e)
    {

    }
}

【.NET基础加强第八课--委托】文章来源地址https://www.toymoban.com/news/detail-435434.html

到了这里,关于【.NET基础加强第八课--委托】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 理解C#委托(Delegate)通俗易懂,深入浅出

    委托首先是一个数据类型,我们可以像定义结构体一样定义一个委托类型,委托(Delegate) 是存有对某个方法的引用的一种引用类型变量。引用可在运行时被改变 委托的定义 例如: 在定义委托类型时要指定函数的参数类型和返回值,一旦声明了委托类型,委托对象必须使用

    2024年02月02日
    浏览(52)
  • UE4/5C++:Delegate(委托or代理?)的使用

    目录 DECLARE的使用 单播: 绑定UObject 绑定 调用 无参调用 解除绑定: 绑定Lambda表达式: 绑定c++原生的c++类的函数: 绑定共享指针: 绑定静态函数: 绑定线程安全的共享指针: 绑定一个Function方法: 多播 动态单播代理:  用在蓝图上: 在c++中如何绑定:  动态多播代理  

    2024年02月07日
    浏览(84)
  • C#中的委托(Delegate)和事件 (Event)详解与使用范例

    最近天气晴雨不定,你因为害怕打游戏时忘记在下雨时收衣服或者在天晴时把衣服挂出去,于是你委托好友小明在天气发生变化时打电话通知你,这就是一种委托. 下面是这种委托的实例代码 以上代码的输出为 值得一提的是,如下代码为创建一个继承自Delegate类的名为XiaoMing的子类

    2023年04月12日
    浏览(42)
  • 面试常考:C# 委托(delegate、Action、Func、predicate)和事件

    刚开始工作的时候,觉得委托和事件有些神秘,而当你理解他们之后,也觉得好像没有想象中的那么难,这篇博文算是自己对委托和事件的一次梳理和总结。 C#中的委托,相当于C++中的指针函数,但委托是面向对象的,是安全的,是一个特殊的类,当然他也是引用类型,委托

    2024年02月16日
    浏览(46)
  • 通俗易懂的子网划分(第八课)

    1 思考一下为什么要子网划分? 2 如何去子网划分? 3 学习这个技术的目的是啥? 4 什么是IP地址? 5 IP地址如何分类的依据是啥? 6 IP地址都组成? 7 IP地址的分类? 8 二进制到十进制的转化 十进制到二进制的转换 9 如何 计算192.168.1.1的网络ID?

    2024年02月10日
    浏览(52)
  • css第八课:文本属性(字体,颜色属性)

    这一节我们要讲的是文本属性: 文本属性就是: css样式里的属性,对文本的修饰,比如颜色,大小,字体,下划线... 下图是文本的一些属性: 1.font-size和font-family属性 我们先来演示一下前两个属性:字体大小和字体类型  结果:  解释:我们这里第一个p标签设置的css样式

    2024年02月06日
    浏览(51)
  • 网络安全进阶学习第八课——信息收集

    信息收集(Information Gathering)信息收集是指通过各种方式获取所需要的信息。渗透的本质是信息搜集,而信息搜集整理为后续的情报跟进提供了强大的保证。 目标资产信息搜集的程度,决定渗透过程的复杂程度。 目标主机信息搜集的深度,决定后渗透权限持续把控。 收集信

    2024年02月13日
    浏览(49)
  • 复习第八课 C语言-结构体,其他

    目录 【1】结构体 【2】typedef 【3】结构体数组 【4】结构体指针 【5】结构体大小 【6】共用体 【7】枚举 【8】存储类型 1. 定义: 结构体就是一种用户自定义的新数据类型,在结构体中可以包含若干个相同数据类型或不同数据类型的成员变量,组合在一起进行描述 2. 格式:

    2024年02月16日
    浏览(35)
  • STM32第八课:PWM控制直流电机

            TB6612FNG是一款新型驱动器件,能独立双向控制2个直流电机,它具有很高的集成度,同时能提供足够的输出能力,运行性能和能耗方面也具有优势因此在集成化、小型化的电机控制系统中,它可以作为理想的电机驱动器件。                           

    2024年03月24日
    浏览(53)
  • 【SQL 必知必会】- 第八课 使用函数处理数据

    目录 函数         函数带来的问题         可移植(portable)         是否应该使用函数? 使用函数         文本处理函数         SOUNDEX 支持         日期和时间处理函数         数值处理函数         函数带来的问题         与几乎所有

    2023年04月10日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包