using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 委托
{
class Program
{
delegate string GetAString();//定义了一个委托类型,这个委托类型的名字叫做GetAString
static void Main(string[] args)
{
int x = 40;
//使用委托类型 创建实例
//GetAString a = new GetAString(x.ToString);//a指向了x中的ToString方法
//string s = a();//通过委托实例去调用x中的ToString方法
GetAString a = x.ToString;//给委托类型变量赋值的第二种方式
string s = a.Invoke();//通过invoke方法调用a所引用的方法
//实例2 使用委托类型作为方法的参数
PrintString method=Method1;//method是变量
PrintStr(method);//必须要有引用,不能空指针
method = Method2;//删除原来的引用,并不会删除方法
Console.WriteLine(s);//通过委托类型调用一个方法,跟直接调用这个方法作用是一样的
Console.ReadKey();
}
private delegate void PrintString();
//委托类型可以作为参数来进行传递
static void PrintStr(PrintString print)
{
//传递的委托类型可以直接用()进行调用
print();
}
static void Method1()
{
Console.WriteLine("method1");
}
static void Method2()
{
Console.WriteLine("method2");
}
}
}
委托类型作为方法参数的传递
最新推荐文章于 2023-08-22 17:54:39 发布