代理/委托
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApp
{
//代理 / 委托 方法的指针 C 事件的基础 方法 作为 参数
// 定义一个代理 (不同的“代理”,代理不同的方法.)
delegate void MyDelegate ();
// 类型 /代理名称 /方法的参数表
// MyDelegate 是一种类型 class MyDelegate
class Program
{
static void Main(string[] args)
{
MyDelegate d = new MyDelegate(StaticMethod);
//d 是 StaticMethod的代理
// StaticMethod();
d();
Program p = new Program();
d = new MyDelegate(p.InstanceMethod);
d();
//d = new MyDelegate(SayHello); //错误,代理与方法不匹配
Console.Read();
}
static void StaticMethod()
{
Console.WriteLine("某静态的方法");
}
void InstanceMethod()
{
Console.WriteLine("这是一个实例的方法");
}
static void SayHello(string name)
{
Console.WriteLine("hello , {0}",name);
}
}
}
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApp
{
//代理 / 委托 方法的指针 C 事件的基础 方法 作为 参数
// 定义一个代理 (不同的“代理”,代理不同的方法.)
delegate void MyDelegate ();
// 类型 /代理名称 /方法的参数表
// MyDelegate 是一种类型 class MyDelegate
class Program
{
static void Main(string[] args)
{
MyDelegate d = new MyDelegate(StaticMethod);
//d 是 StaticMethod的代理
// StaticMethod();
d();
Program p = new Program();
d = new MyDelegate(p.InstanceMethod);
d();
//d = new MyDelegate(SayHello); //错误,代理与方法不匹配
Console.Read();
}
static void StaticMethod()
{
Console.WriteLine("某静态的方法");
}
void InstanceMethod()
{
Console.WriteLine("这是一个实例的方法");
}
static void SayHello(string name)
{
Console.WriteLine("hello , {0}",name);
}
}
}