`

C#知识点总结_委托篇

    博客分类:
  • .NET
阅读更多

C#知识点总结1——委托篇

1.委托概念:

当要把方法传送给其它方法时,需要使用委托。委托是一种特殊的引用类型,用于封装命名方法(静态或实例)或匿名方法。委托的作用相当于给方法签名指定名称。使用delegate关键字来声明一个委托引用类型,这种特殊的引用类型称为委托。

2.定义委托:

告诉编译器某个委托引用了某种类型的方法。

定义引用无参数的方法的委托

delegate string TestDelegate1 ();//定义了一个委托TestDelegate1,引用了返回值类型为string的方法,此方法不带任何参数。

定义引用有参数的方法的委托

delegate void TestDelegate2 (string message);//定义了一个委托TestDelegate2,引用了返回值类型为void的方法,此方法带一个string参数。

3.实例化委托:

通过将委托与命名方法(静态或实例)或匿名方法关联,可以实例化委托。委托的实例仍称为委托。

//定义委托TestDelegate,代表带一个string参数的void返回类型方法

delegate 
void TestDelegate(string name);

//定义类TestClass,包含静态命名方法和实例命名方法

public class TestClass

{

    
public static void StaticMethod(string name)//静态命名方法

    
{

        Console.WriteLine(name 
+" Called StaticMethod");

    }


    
public void NoStaticMethod(string name)//实例命名方法

    
{

        Console.WriteLine(name 
+" Called NoStaticMethod");

    }


}

与命名方法关联时委托在语法上总是带有一个参数的构造函数,这个参数就是委托引用的方法,这个方法必须匹配最初定义委托时的签名,即方法返回值类型和参数序列必须都相匹配。

//与静态命名方法关联实例化委托

TestDelegate delegate1 
= new TestDelegate(TestClass. StaticMethod);

//与实例命名方法关联实例化委托

TestClass testClass 
= new TestClass();

TestDelegate delegate2 
= new TestDelegate(testClass. NoStaticMethod);

与匿名方法关联时,匿名方法必须匹配最初定义委托时的签名,即方法返回值类型和参数序列必须都相匹配。

//与匿名方法关联实例化委托

TestDelegate delegate3 
= delegate(string name)

{

    Console.WriteLine(name 
+ " Called AnonyMethod");

}
;

4.多播委托:

委托可以包含多个方法,这种委托称为多播委托。多播委托只能引用返回值为void的方法。运算符有++=--=,用来增加方法和删除方法。

// 在delegate委托中增加NoStaticMethod方法

TestDelegate 
delegate = new TestDelegate(TestClass. StaticMethod);

Delegate 
+= new TestDelegate(testClass. NoStaticMethod);

5.使用委托:

使用委托即通过委托的实例调用委托引用的方法,委托的实例名后面的括号包含的参数与委托引用的方法参数匹配。

delegate1(“XieXiaohua”);// 使用与静态命名方法关联的委托实例

delegate2(“XieXiaohua”);
// 使用与实例命名方法关联的委托实例

delegate3(“XieXiaohua”);
// 使用与匿名方法关联的委托实例

6.委托总结:

委托使用三步曲:定义->关联->调用

//定义(定义委托)
delegate string MyDelegate();

//关联(通过关联方法实例化委托)
MyDelegate d = new MyDelegate(MyClass.MyMethod);

//调用(通过委托的实例调用方法)
string ret = d();
分享到:
评论

相关推荐

    精选_C#知识点总结_源码打包

    本压缩包"精选_C#知识点总结_源码打包"包含了丰富的C#学习资源,包括源代码实例,旨在帮助开发者系统地理解和掌握C#的核心概念和技术。 1. **基础语法**:C#的基础语法包括变量声明、数据类型(如int、string、bool...

    C#知识点总结适用初中级开发程序员

    本篇文章将针对“C#知识点总结”进行深入探讨,适用于初中级开发程序员的学习和进阶。 首先,我们来看看C#的基础部分。C#语言的基础语法与C++和Java有诸多相似之处,包括变量声明、数据类型(如int、string、bool等...

    C#编程知识点总结1-10C#编程知识点总结

    以下是对给定文件名的C#编程知识点的详细总结: 1. **C#难点总结**:C#编程中可能存在一些复杂的概念和技术,如多线程、内存管理、委托与事件、LINQ查询以及高级面向对象特性(如泛型、接口、抽象类等)。这些难点...

    C#高级编程知识点总结

    C#高级编程涵盖了许多关键知识点,这包括了.NET体系结构、托管执行环境、组件使用、部署与版本控制、对象和类型等多个方面。首先,我们来深入理解.NET框架,它是.NET平台的基础,由公共语言运行库(CLR)和.NET ...

    C#23实例.net_经典例子400个

    在C#的基础语法部分,你将看到变量声明、数据类型、控制流(如if语句、switch语句、循环)、函数、数组、字符串操作等常见知识点的应用实例。例如,通过实例了解如何创建、初始化和遍历数组,以及如何使用条件语句...

    C# 知识点总结.docx

    【C# 知识点总结】 C# 是一种面向对象的编程语言,广泛应用于软件开发,尤其是.NET框架下的应用开发。以下是对C#学习过程中的关键知识点的详细概述: 1. **基本语法与Hello, World** 在C#中,打印"Hello, World...

    C#-知识点整理总结.doc

    【C# 知识点整理总结】 C# 是一种由微软公司开发的现代、通用的、面向对象的编程语言,其设计目标是简洁、高效、易于学习,并且具有丰富的编程特性。C# 是基于 C 和 C++ 的,但与 Java 有许多相似之处,尤其在面向...

    c#知识点sql 出个人总结 c#知识点sql 出个人总结

    C#是一种广泛应用于开发Windows桌面...以上是C#与SQL相关的主要知识点总结,通过深入理解和实践这些概念,开发者可以构建出高效、稳定的数据驱动应用。在实际项目中,还需要结合具体需求和业务逻辑灵活运用这些知识。

    c# mitsu fx5u_C#_源码

    总结来说,"c# mitsu fx5u_C#_源码"项目涉及使用C#语言构建一个能够通过Modbus TCP协议与三菱FX5U PLC进行通信的程序,这对于工业自动化、设备监控和远程控制场景具有重要价值。通过理解和掌握这些技术点,开发者...

    C#经典知识点源码总结

    "C#经典知识点源码总结"这一资源,正是为了帮助开发者们巩固基础,提升技能而设计的。在这个压缩包中,可能包含了从基础到进阶的各种C#编程技巧和实战案例。 首先,C#是一种面向对象的编程语言,由微软公司开发,...

    c#委托 知识点归纳

    这是我学习委托后进行的总结,一个思维导图,很清晰,你值得拥有`

    C#基础知识点.doc

    为了更好地学习和掌握C#语言,本文将对C#基础知识点进行详细的总结和解释。 1. 数据类型 C#中的数据类型分为两大类:值类型和引用类型。值类型的变量直接包含着自身的数据,而引用类型的变量是指向实际数据的地址...

    c#知识点委托事件对象等

    C#中的委托和事件是.NET Framework的核心特性,它们在实现对象间通信和异步编程中起着关键作用。本文将深入探讨这两个概念,以及它们如何与对象交互。...掌握这些知识点对于提升C#编程技能是非常必要的。

    C#语言参考-完整详细的知识点介绍

    本文将全面深入地探讨C#语言的关键知识点。 1. **基础语法** - 变量:C#中的变量是存储数据的容器,有其特定的数据类型,如int、string、bool等。 - 关键字与标识符:C#中有许多保留关键字,如`class`、`if`、`...

    C#数据结构多播委托以及笔与背景的颜色.zip

    下面将详细介绍这两个知识点。 **多播委托** 在C#中,委托是一种类型,它代表了方法的引用。它可以被看作是函数指针的面向对象版本。单播委托只可以指向一个方法,而多播委托则可以同时指向多个方法。当你定义一个...

    C#的学习笔记总结

    本文档旨在总结C#的学习笔记,涵盖了C#的基本特征、语法、泛型、多线程、集合、反射等重要知识点。 一、C#的基本特征 C#是一门面向对象的语言,具有面向对象的基本特征,包括抽象、封装、继承、多态等性质。学习C#...

    C#基础知识 委托事件

    总结来说,委托和事件是C#中用于实现对象间通信的重要工具,它们使得代码更具灵活性和可扩展性。牢固掌握这些基础知识,对于学习更高级的C#特性和框架,如LINQ、async/await、Unity游戏开发等,都将起到坚实的基础...

    2月1号学习总结文件_resulttke_c#实例_

    基于这些信息,我们可以深入探讨C#编程的一些关键知识点: 1. **基础语法**:C#是一种面向对象的编程语言,其基础包括变量、数据类型、运算符、流程控制(如if语句、for循环和while循环)、函数等。学习者需要理解...

    c# 委托访问listbox多线程操作

    **扩展知识点:** - **线程安全的集合**:在多线程环境中,可以考虑使用线程安全的集合类(如 `ConcurrentBag<T>` 或 `ConcurrentQueue<T>`),以减少锁的竞争并提高性能。 - **异步编程模型**:除了多线程外,还...

Global site tag (gtag.js) - Google Analytics