美文网首页程序员
C#委托的理解

C#委托的理解

作者: 请注意你的素质啊 | 来源:发表于2019-07-02 11:45 被阅读5次

最近准备换下工作,想着接下来要进行面试,肯定少不了各种知识点的询问。趁这个机会把各个知识点都回顾下。

今天抽出时间复习下委托的概念。准备从下面几个点来讲下。

1.什么是委托?

委托是一种引用类型,表示对具有特定参数列表和返回类型的方法的引用。 在实例化委托时,你可以将其实例与任何具有兼容签名和返回类型的方法相关联。 你可以通过委托实例调用方法。(通俗来说就是委托用于将方法作为参数传递给其他方法)

2.怎么创建委托?

    //第一步:声明委托类型
     public delegate int name();  //无参数
     public delegate int name(int i,int y); //有参数
     public delegate  返回值类型    委托名(参数);//声明格式
    //第二步:创建方法
     public int num(int i, int y)
     {
        return i + y;
     }
    //第三步:实例化委托
      name text = num;
    //第四步:调用委托
      int count = text(1, 3); 
    //输出count=4.

3.委托的好处。

第一点:委托类型是安全可靠的,且是面向对象,这是与C/C++不同之处。

第二点:委托能减少代码中的IF/Switch,提高代码简洁性和可读性。

还有什么优点暂时没有想到,欢迎评论补充。

4.委托和事件怎么选择?

委托和事件都可以完成相识的功能,如定阅单个和多个服务器方法。选择用哪个来实现,主要看应用场景。

如果不需要调用服务器端的方法时选择事件。

如果需要调用服务器端的方法时选择委托。

5.委托和接口的使用场景?

委托和接口都允许类设计器分离类型声明和实现。 任何类或结构都能继承和实现给定的接口。 可以为任何类上的方法创建委托,前提是该方法符合委托的方法签名。 接口引用或委托可由不了解实现该接口或委托方法的类的对象使用。

在以下情况下,使用委托:

 当使用事件设计模式时。

 当封装静态方法可取时。

 当调用方不需要访问实现该方法的对象中的其他属性、方法或接口时。

 需要方便的组合。

 当类可能需要该方法的多个实现时。

在以下情况下,使用接口:

   当存在一组可能被调用的相关方法时。

   当类只需要方法的单个实现时。

   当使用接口的类想要将该接口强制转换为其他接口或类类型时。

   当正在实现的方法链接到类的类型或标识时:例如比较方法。

当然委托还有多播的使用方法,就是多次调用方法(最后写了例子)。

 public delegate int name(int i);  
 public int i = 10;
 public int num(int y)
 {
       return i + y;
 }
 public int num1(int y)
 {
       return i + y;
 }
name text;
name text1 = num;
name text2 = num1;
text = text1;
text += text2;
text(2);
//输出:14

相关文章

  • C# 委托的理解

    1、什么是委托 委托可以理解为持有一个或多个方法的对象。如果执行委托的话,委托会 执行它所"持有"的方法。委托可以...

  • C#委托的理解

    最近准备换下工作,想着接下来要进行面试,肯定少不了各种知识点的询问。趁这个机会把各个知识点都回顾下。 今天抽出时间...

  • C#日记——委托

    很多人说C#和JAVA很像,但也有很多地方不同,委托就是一个C#特有的东西委托可以理解为C语言里的函数指针,只要参...

  • 第一部分:C#语言基础----委托和事件

    第3章 C#中的委托和事件 3.1 理解委托 3.1.1 将方法作为方法的参数 委托是一个类,它定义了方法的类型,...

  • C# 委托(个人理解)

    委托是用户自定义的类,它定义了方法的类型,使得可以将方法当作另一个方法的参数来进行传递.储存的是一系列具有相同参数...

  • C# 委托

    C#委托 C#中的委托(Delegate)类似于C或C++中函数的指针。委托(Delegate)是存有对某个方法的...

  • 教小明学一点点编程—C#篇(0)

    像小明这样使用C#的新同学,一定都会被C#的复杂的委托事件机制所困惑,那么我们不如解释一下什么是C#中委托。 委托...

  • C#委托 匿名函数 Lambda

    C# 中委托的发展#在 C# 1.0 中,通过使用在代码中其他位置定义的方法显式初始化委托来创建委托的实例。 C#...

  • 初探委托

    前言 虽然学习C#有段时间了,可一直没怎么接触委托,在学习多线程的时候,看到了很多委托的例子,有点不太理解,故查阅...

  • (转).NET面试题系列[7] - 委托与事件

    委托和事件 委托在C#中具有无比重要的地位。 C#中的委托可以说俯拾即是,从LINQ中的lambda表达式到(包括...

网友评论

    本文标题:C#委托的理解

    本文链接:https://www.haomeiwen.com/subject/xshzcctx.html