命名方法委托

简介: 命名方法委托

C# 语言中命名方法委托最常用的一种委托。


定义委托

定义的语法形式如下:

修饰符 delegate 返回值类型 委托名(参数列表);


从上面的定义可以看出,委托的定义与方法的定义是相似的。例如定义一个不带参数的委托,代码如下:

public delegate void MyDelegate();


实例化委托

命名方法委托在实例化委托时必须带入方法的具体名称。实例化委托的语法形式如下:

委托名 委托对象名 = new 委托名(方法名);


委托中传递的方法名既可以是静态方法的名称,也可以是实例方法的名称。


注意

在委托中所写的方法名必须与委托定义时的返回值类型和参数列表相同


调用委托

调用委托的语法形式如下:

委托对象名(参数列表);

在这里,参数列表中传递的参数与委托定义的参数列表相同即可。


示例


静态方法

若使用静态方法,在向委托中传递方法名时只需要 用类名.方法名 的形式。如下所示:

class Program
{
  public delegate void MyDelegate();
  static void Main(string[] args)
  {
    MyDelegate myDelegate = new MyDelegate(Test.SayHello);
    myDelegate();
  }
}
class Test
{
  public static void SayHello()
  {
    Console.WriteLine("Hello Delegate!");
  }
}


输出

Hello Delegate!


实例方法

由于在委托中使用的是实例方法,则需要通过类的实例来调用方法,即使用 new 类名(). 方法名 的形式。如下所示:

class Program
{
  public delegate void MyDelegate();
  static void Main(string[] args)
  {
    MyDelegate myDelegate = new MyDelegate(new Test().SayHello);
    myDelegate();
  }
}
class Test
{
  public void SayHello()
  {
    Console.WriteLine("Hello Delegate!");
  }
}


除了使用匿名对象的方式调用方法以外,也可以先创建类的实例,再通过类的实例调用方法。


输出

Hello Delegate!

目录
相关文章
|
3月前
|
JavaScript 前端开发 开发者
|
C++
45 C++ - 继承中同名成员的处理方法
45 C++ - 继承中同名成员的处理方法
74 0
|
存储 安全 编译器
【C++基础】类与对象(上):访问限定符、类作用域、类实例化、类对象模型、this指针
【C++基础】类与对象(上):访问限定符、类作用域、类实例化、类对象模型、this指针
137 0
2.【类的组合(在一个类中定义一个类)】
2.【类的组合(在一个类中定义一个类)】
58 0
|
Python
Python面向对象、类的抽象、类的定义、类名遵循大驼峰的命名规范创建对象、类外部添加和获取对象属性、类内部操作属性魔法方法__init__()__str__()__del__()__repr__()
面向对象和面向过程,是两种编程思想. 编程思想是指对待同一个问题,解决问题的套路方式.面向过程: 注重的过程,实现的细节.亲力亲为.面向对象: 关注的是结果, 偷懒.类和对象,是面向对象中非常重要的两个概念object 是所有的类基类,即最初始的类class 类名(object): 类中的代码PEP8代码规范:类定义的前后,需要两个空行 创建的对象地址值都不一样如dog和dog1的地址就不一样,dog的地址为2378043254528dog1的地址为2378044849840 8.类内部操作属性 sel
279 1
Python面向对象、类的抽象、类的定义、类名遵循大驼峰的命名规范创建对象、类外部添加和获取对象属性、类内部操作属性魔法方法__init__()__str__()__del__()__repr__()
第五周学习java 继承 在子类父类中有相同参数,子类继承分类后如何进行调用,判断创建的对象属性哪个类
第五周学习java 继承 在子类父类中有相同参数,子类继承分类后如何进行调用,判断创建的对象属性哪个类
第五周学习java 继承 在子类父类中有相同参数,子类继承分类后如何进行调用,判断创建的对象属性哪个类
|
XML C# 数据格式
C#封装程序集属性方法注释说明
一.使用封装程序集好处: 在很多分布式应用程序开发中,针对每一种功能可能条用的接口不一样,往往习惯将需要被调用的接口,封装成DLL给调用方应用后使用,这样既规范了调用的方式,又避免了调用出现参数请求方式的异常。
1140 0