C#委托
来源:互联网 发布:js注释快捷键 编辑:程序博客网 时间:2024/05/22 16:27
如果我们要把方法当做参数来传递的话,就要用到委托。简单来说委托是一个类型,这个类型可以赋值一个方法的引用。
//声明委托
delegate void IntMethodInvoker(int x);
delegate double TwoLongOp(long first,long second);
delegate string GetAString();
例子:
int x = 40;
string s =x.ToString();
Console.WriteLine(s);
Console.ReadKey();
使用委托类型创建实例
private delegate string GetAString();
static void Main(){
int x = 40;
GetAString a = new GetAString(x.ToString); //a指向了x中的tostring方法
string s = a(); //通过委托实例去调用x中的tostring方法
Console.WriteLine(s); //通过委托类型去调用一个方法,跟直接调用方法是一样的
Console.ReadKey();
}
第一种初始化的方式:GetAString a =new GetAString(x.ToString);
第二种初始化的方式:GetAString a =x.ToString; (常用)
第一种调用方法的方式:string s = a();(常用)
第二种调用方法的方式:string s = a.Invoke();
-------------------------------------------------------------------------
Action委托:action声明的委托是没有返回值的
Action a = PrintString; //action是系统内置(预定义)的一个委托类型,它可以指向一个没有返回值,没有参数的方法。
Action <int> a = PrintInt; //定义了一个action委托,这个类型可以指向一个没有返回值,有一个int参数的方法
Action <string> a = PrintString; //定义了一个action委托,这个类型可以指向一个没有返回值,有一个string参数的方法,在这系统会自动寻找方法重载中匹配的方法
action委托可以通过泛型去指定指向的方法的参数类型,最多可以指定16各参数类型。
Func委托:func声明的委托必须要有返回值
Func<int>a = Test1; //func中的泛型类型指定的是方法的返回值类型
Func<string,int,int,int>a = Test2; //func后面可以跟多个类型,最后一个类型是返回值类型,前面的类型是参数类型(最多可以有16个参数),参数类型必须跟指向的方法发参数类型按照顺序对应
//声明委托
delegate void IntMethodInvoker(int x);
delegate double TwoLongOp(long first,long second);
delegate string GetAString();
例子:
int x = 40;
string s =x.ToString();
Console.WriteLine(s);
Console.ReadKey();
使用委托类型创建实例
private delegate string GetAString();
static void Main(){
int x = 40;
GetAString a = new GetAString(x.ToString); //a指向了x中的tostring方法
string s = a(); //通过委托实例去调用x中的tostring方法
Console.WriteLine(s); //通过委托类型去调用一个方法,跟直接调用方法是一样的
Console.ReadKey();
}
第一种初始化的方式:GetAString a =new GetAString(x.ToString);
第二种初始化的方式:GetAString a =x.ToString; (常用)
第一种调用方法的方式:string s = a();(常用)
第二种调用方法的方式:string s = a.Invoke();
-------------------------------------------------------------------------
Action委托:action声明的委托是没有返回值的
Action a = PrintString; //action是系统内置(预定义)的一个委托类型,它可以指向一个没有返回值,没有参数的方法。
Action <int> a = PrintInt; //定义了一个action委托,这个类型可以指向一个没有返回值,有一个int参数的方法
Action <string> a = PrintString; //定义了一个action委托,这个类型可以指向一个没有返回值,有一个string参数的方法,在这系统会自动寻找方法重载中匹配的方法
action委托可以通过泛型去指定指向的方法的参数类型,最多可以指定16各参数类型。
Func委托:func声明的委托必须要有返回值
Func<int>a = Test1; //func中的泛型类型指定的是方法的返回值类型
Func<string,int,int,int>a = Test2; //func后面可以跟多个类型,最后一个类型是返回值类型,前面的类型是参数类型(最多可以有16个参数),参数类型必须跟指向的方法发参数类型按照顺序对应
0 0
- C#委托-委托概述
- C#委托
- C#委托
- C#委托
- c#委托
- C# 委托
- C#委托
- C# 委托
- c#委托
- C#委托
- c#委托
- C#委托
- C# - 委托
- C#委托
- C#委托
- C#委托
- C# 委托
- c#委托
- Java数组的声明,创建初始化
- acitivity+fragment切换
- 雪城大学信息安全讲义 六、输入校验
- bzoj1941 Hide and Seek(kd_Tree模板题)
- Hibernate的Query的setProperties(Map map)方法的使用
- C#委托
- Struts:Struts2.3-all版本的配置问题
- Office 2010 简体中文破解版 安装详解
- page cache和buffer cache的关系
- Sql Server数据库
- tabbar简单实现消息提示(小红点)
- 【Axure】省市区列表三级选择联动
- IMWeb训练营作业
- ubuntu 16.04 编译安装4.4.30内核