当前位置: 首页 > news >正文

在招聘网站做电话销售怎么样舆情分析系统

在招聘网站做电话销售怎么样,舆情分析系统,企业管理软件开发,国际电商平台排行榜一、委托 (Delegates) 定义:委托是一种类型安全的方法引用,它可以指向一个或多个方法,并可以通过该委托调用这些方法。即委托该方法用以调用其他方法。 声明: public delegate void MyDelegate(string message);使用:…

一、委托 (Delegates)

  1. 定义:委托是一种类型安全的方法引用,它可以指向一个或多个方法,并可以通过该委托调用这些方法。即委托该方法用以调用其他方法。

  2. 声明

    public delegate void MyDelegate(string message);
    
  3. 使用

    • 创建委托实例并指向方法:
    void MyMethod(string msg) 
    {Console.WriteLine(msg);
    }
    MyDelegate del = new MyDelegate(MyMethod);
    del("Hello, Delegates!"); // 输出:Hello, Delegates!
    
    • 委托可以指向多个方法(多播委托):
    del += AnotherMethod; // 追加方法
    del -= AnotherMethod; // 去除方法
    del += AnotherMethod; // 追加方法
    del("Hello again!"); // 将调用 MyMethod 和 AnotherMethod
    del = null //清空委托
    
    • 委托可以传参,只能绑定对应参数的方法,调用时传参:
    public delegate void MyDelegate(int number, string message);
    public void MyMethod(int number, string message) 
    {Console.WriteLine($"Number: {number}, Message: {message}");
    }
    MyDelegate del = new MyDelegate(MyMethod);
    del(42, "Hello, Delegates!"); // 输出:Number: 42, Message: Hello, Delegates!
    
    • 可以使用匿名方法和Lambda表达式
    //匿名方法
    MyDelegate del = delegate(int number, string message) 
    {Console.WriteLine($"Anonymous - Number: {number}, Message: {message}");
    };
    del(100, "Hello from Anonymous Method!"); 
    // 输出:Anonymous - Number: 100, Message: Hello from Anonymous Method!
    //Lambda表达式
    MyDelegate del = (number, message) => 
    {Console.WriteLine($"Lambda - Number: {number}, Message: {message}");
    };
    del(200, "Hello from Lambda!"); 
    // 输出:Lambda - Number: 200, Message: Hello from Lambda!
    

实际使用中,往往会直接使用事件而不是委托:

二、事件 (Events)

  1. 定义:事件是委托的封装,允许类或对象向其他类或对象提供通知。通常用于实现发布-订阅模式。
  2. 声明
    public class MyEventPublisher 
    {public event MyDelegate MyEvent; // 声明事件
    }
    
  3. 触发事件
    protected virtual void OnMyEvent(string message) 
    {MyEvent?.Invoke(message); // 触发事件
    }
    
  4. 订阅事件
    • 在另一个类中订阅事件:
    public class MyEventSubscriber 
    {public void Subscribe(MyEventPublisher publisher) {publisher.MyEvent += HandleEvent; // 订阅事件publisher.MyEvent -= HandleEvent; // 取消事件}private void HandleEvent(string message) {Console.WriteLine($"Event received: {message}");}
    }
    

为什么常用事件而不是委托(来源于网络)

  1. 解耦合性
    • 事件提供了一种更好的解耦合机制。发布者不需要知道订阅者的具体实现,允许多个订阅者同时响应同一事件,而不会影响彼此的实现。
  2. 灵活性和多播能力
    • 事件支持多播,可以有多个订阅者,而委托通常是单一的。当需要通知多个对象时,事件显得更为合适。
  3. 安全性
    • 事件的封装性使得外部无法直接调用事件,而只能通过订阅和触发的方式使用,这有助于避免不必要的调用和潜在的错误。
  4. 标准化和一致性
    • 使用事件是C#语言本身提供的特性,符合事件驱动编程的标准,容易被其他开发者理解和使用。Unity和许多框架也倾向于使用事件,从而保持API的一致性。
  5. 便于调试
    • 事件的订阅和触发方式更容易在调试时进行跟踪和监控,尤其是在复杂的应用程序中,可以快速识别事件的发送和接收情况。

为什么?(个人理解)

我认为事件的优点在于封装,在事件中,事件是个容器,包含其拥有的方法,给出统一的操作唤醒,不允许太过自主的调用,减少了对具体实现的依赖。
以此带来了解耦合,灵活多播,使用安全等优点。

三、示例代码

以下是一个完整的示例,演示如何使用委托和事件:

public delegate void MyDelegate(string message);public class MyEventPublisher {public event MyDelegate MyEvent;public void TriggerEvent(string message) {OnMyEvent(message);}protected virtual void OnMyEvent(string message) {MyEvent?.Invoke(message);}
}public class MyEventSubscriber {public void Subscribe(MyEventPublisher publisher) {publisher.MyEvent += HandleEvent; // 订阅事件}private void HandleEvent(string message) {Console.WriteLine($"Event received: {message}");}
}class Program {static void Main(string[] args) {MyEventPublisher publisher = new MyEventPublisher();MyEventSubscriber subscriber = new MyEventSubscriber();subscriber.Subscribe(publisher); // 订阅事件publisher.TriggerEvent("Hello, World!"); // 触发事件}
}
四、总结
  • 委托是一种类型安全的方法引用,允许将方法作为参数传递。
  • 事件是一种基于委托的通知机制,适用于实现观察者模式。
  • 委托和事件在C#中广泛用于异步编程、事件驱动编程等场景。
http://www.yayakq.cn/news/768574/

相关文章:

  • 网站设计版式怎么制作一个软件app
  • 深圳做网站google推广浏览器的网站通知怎么做
  • 石材网站建设成都电商网站开发公司
  • 收录网站工具建立网站专业公司
  • 天津网站建设软件开发招聘东莞seo建站推广费用
  • 网站最好的优化是什么辽宁建设工程信息网企业人员调动
  • 快速的宝安网站建设网站首页 seo
  • 东南亚cod建站系统php网站开发教程图片
  • 如何做能切换语言的网站wordpress如何不显示评论
  • 个人兼职网站建设做网站挂广告
  • 查询网站服务器类型宜昌做网站公司有哪些网站
  • 谢岗镇网站仿做河南网站推广
  • 新电商网站网站开发立项
  • 大学网站开发模板免费下载wordpress评论富文本
  • 网站建设与维护网站备案条件
  • hmm船公司网站it建设人才网
  • 网站二级目录 修改路径wordpress怎么建立网站吗
  • 网页设计师联盟网站怎么申请域名注册备案平台
  • 女的和男做那个视频网站视频多的网站建设
  • 自己建网站买玩具如何在免费网站上做推扩
  • 郑州网站建设最便宜2023能用的磁力搜索引擎
  • 网站域名怎么查询销售口才900句
  • 百度云怎么做网站新格建站
  • 动漫设计工作室网站宣传片制作网站建设属于办公费吗
  • 深圳外贸网站公司驾校网站制作
  • php怎么做全网小视频网站wordpress单栏简洁
  • 建一家网站多少钱网站开发后的经验总结
  • 建设公司网站入账大连网站建设酷网科技
  • 湖北专业网站建设公司长泰网站建设
  • 企业网站的建立多少钱wordpress自适应自媒体主题