namespace N01
{
delegate void MyDelegate(string s);
class myClass
{
public static void hello(string s)
{
Console.WriteLine("您好,{0}",s);
}
public static void goodbye(string s)
{
Console.WriteLine("再见,{0}",s);
}
}
class program
{
static void Main(string [] args)
{
MyDelegate a,b,c,d;
a=myClass.hello;
Console.WriteLine("调用委托变量a:");
a("a");
Console.WriteLine("调用委托变量b:");
b = myClass.goodbye;
b("b");
c=a+b;
Console.WriteLine("调用委托变量c:");
c("c=a+b");
d=c-a;
Console.WriteLine("调用委托变量d:");
d("d=c-a");
Console.Read();
}
}
}
{
delegate void MyDelegate(string s);
class myClass
{
public static void hello(string s)
{
Console.WriteLine("您好,{0}",s);
}
public static void goodbye(string s)
{
Console.WriteLine("再见,{0}",s);
}
}
class program
{
static void Main(string [] args)
{
MyDelegate a,b,c,d;
a=myClass.hello;
Console.WriteLine("调用委托变量a:");
a("a");
Console.WriteLine("调用委托变量b:");
b = myClass.goodbye;
b("b");
c=a+b;
Console.WriteLine("调用委托变量c:");
c("c=a+b");
d=c-a;
Console.WriteLine("调用委托变量d:");
d("d=c-a");
Console.Read();
}
}
}
解决方案 »
- datatable求初始化方法(不保留表结构)
- C# 数据显示
- 使用ajax刷新gridview后,如何选中“刷新之前选中的行”
- reportviewer,重定义报表时提示尚未指定报表"report1.rdlc"的报表定义!!!
- 使用C#如何获取本机另一个用户的HKEY_CURRENT_USER注册表?
- 急求解!在一个解决方案中两个项目之间调用问题!
- 最近遇到的一个问题 关于 float (VS2003)
- PDA项目怎么做安装????
- 生成的应用程序,操作Excel的部分,在别的机子上没法运行
- 求12-345-6789格式的正则表达式验证方法?winform
- 一个简单的关于winform中app.config的问题
- 请教:如何关闭代码数据库TransactionScope事务功能?
委托返回类型和方法一致,委托的参数也必须和方法一致,参数的个数和类型都必需一致a=myClass.hello就是把MyDelegate的实例指向public static void hello(string s)这个方法然后就可以像直接使用这个方法一样传递参数获得返回值c=a+b;是指同时指向了两个方法,执行的顺序是相加的顺序
d=c-a; 从c中去除a的指向,这时候的d就等于b
using System;
using System.Collections.Generic;
using System.Text;namespace N01
{
delegate void MyDelegate(string s);
class myClass
{
public static void hello(string s) //带参数的函数
{
Console.WriteLine("您好,{0}", s); //{}占位符,("您好,{0}{1}", a,b),a给{0}, b给{1}
}
public static void goodbye(string s)
{
Console.WriteLine("再见,{0}", s);
}
}
class program
{
static void Main(string[] args)
{
MyDelegate a, b, c, d;
a = myClass.hello; //可理解为引用了hello函数
Console.WriteLine("调用委托变量a:");
a("a"); //a()=您好,{0} "a"为赋值
Console.WriteLine("调用委托变量b:");
b = myClass.goodbye;
b("b");
c = a + b;
Console.WriteLine("调用委托变量c:");
c("c=a+b");
d = c - a;
Console.WriteLine("调用委托变量d:");
d("d=c-a");
Console.Read();
}
}
}
您好,a
调用委托变量b:
再见,b
调用委托变量c:
您好,c=a+b
再见,c=a+b
调用委托变量d
再见,d=c-a
//定义委托
delegate void MyDelegate(string s);
class myClass
{
//定义方法1
public static void hello(string s)
{
Console.WriteLine("您好,{0}", s);
}
//定义方法2
public static void goodbye(string s)
{
Console.WriteLine("再见,{0}", s);
}
}
class program
{
static void Main(string[] args)
{ MyDelegate a, b, c, d; //定义委托变量
a = myClass.hello;//实例化委托a,执行myclass的hello方法
Console.WriteLine("调用委托变量a:");
a("a");//执行myClass.hello方法
Console.WriteLine("调用委托变量b:");
b = myClass.goodbye;
b("b");
c = a + b;//实例化委托c,执行a = myClass.hello和myClass.goodbye方法
Console.WriteLine("调用委托变量c:");
c("c=a+b");
d = c - a;//实例化委托d,执行myClass.goodbye方法
Console.WriteLine("调用委托变量d:");
d("d=c-a");
Console.Read();
}
}
{
//定义一个委托
delegate void MyDelegate(string s);
class myClass
{
public static void hello(string s)
{
Console.WriteLine("您好,{0}", s);
}
public static void goodbye(string s)
{
Console.WriteLine("再见,{0}", s);
}
}
class program
{
static void Main(string[] args)
{
//创建该委托对象
MyDelegate a, b, c, d;
//把hello方法作为参数委托给Mydelegate,此方法的参数必须和委托的参数是一直的
//以下同理
a = myClass.hello;
Console.WriteLine("调用委托变量a:");
//调用了该委托。执行的是hello方法
a("a");
Console.WriteLine("调用委托变量b:");
b = myClass.goodbye;
b("b");
c = a + b;
Console.WriteLine("调用委托变量c:");
c("c=a+b");
d = c - a;
Console.WriteLine("调用委托变量d:");
d("d=c-a");
Console.Read();
}
}
}
{
//定义一个委托
delegate void MyDelegate(string s);
class myClass
{
public static void hello(string s)
{
Console.WriteLine("您好,{0}", s);
}
public static void goodbye(string s)
{
Console.WriteLine("再见,{0}", s);
}
}
class program
{
static void Main(string[] args)
{
//创建该委托对象
MyDelegate a, b, c, d;
//把hello方法作为参数委托给Mydelegate,此方法的参数必须和委托的参数是一直的
//以下同理
a = myClass.hello;
Console.WriteLine("调用委托变量a:");
//调用了该委托。执行的是hello方法
a("a");
Console.WriteLine("调用委托变量b:");
b = myClass.goodbye;
b("b");
c = a + b;
Console.WriteLine("调用委托变量c:");
c("c=a+b");
d = c - a;
Console.WriteLine("调用委托变量d:");
d("d=c-a");
Console.Read();
}
}
}