c#基础内容:泛型、线程、委托、流

一、委托:

1.自定义委托:

// 1. 声明委托

public delegate int Mydeletate(int a, int b);

// 2. 定义方法

public int Add(int a, int b) { return a + b; }

// 3. 创建实例

Mydelegate m = Add; // 调用

m(10, 20); // 30

2.内置泛型委托:

(1)Action<>

//省略public delegate int Mydeletate(int a, int b);

// 1. 定义方法

public void Print(string mess) { Console.WriteLine(mess); }

//2.使用自带委托类型

Action<string> act = Print; act(“hello”);

(2)Func<参数,返回类型>

//使用lamada

Func<int, int, int> add = (a,b)=>{return a + b};

3.多播:

//创建方法

public void Print1(string message) { Console.WriteLine(message ); }

public void Print2(string message) { Console.WriteLine(message ); }

//初始化 Action<string> act = null;

// 添加方法 act+= Print1; act+= Print2;

// 调用:Print1 -> Print2 act("Hello");

// 移除方法 act-= Print1;

4.回调:将委托类型作为参数。

// 1. 定义方法 public int Add(int a, int b) { return a + b; }

// 2.创建回调函数, public int Callback(Func<int,int,int> act,int a,int b) { return act(a,b); }

// 3.使用 Callback(Add,a,b);