c#中时间和委托的 adbb 使用
2014-10-22 18:10
369 查看
事件是C#的重要概念,在发生其他类或者对象需要关注手,本类或对象可以通过时间来通知它们,发送事件的类称为事件的发送者,而接收事件的类称为事件的订阅户。
委托:
委托调用方法流程,以下面的实例作详细阐述,
1.首先需要定义一个委托,使用的是关键字delegate,如下:
public delegate void Mydelegate(string str);
他的返回类型和参数必须和它调用的方法的返回类型和参数相匹配。
2.接下来是定义该委托需要调用的方法,本例定义了两个方法,用于对字段s进行不同修改,如下:
public void Method1(string str)
{
s=5;
}
public void Method2(string str)
{
s=7;
}
3.创建委托对象,对声明的方法进行包含,如下:
Test test=new Test();
Mydelehate d1=new Mydelegate(test.Method1);
Mydelehate d2=new Mydelegate(test.Method2);
4.最后就是完成方法的调用,如下:
public void Call(Mydelegate d,string str)
{
d(str);
Console.WriteLine(str);
}
这里是用了两个参数,第一个参数是创建委托的对象,它能直接通过调用方法的参数完成对方法的调用,第二个参数是调用的方法的参数。
委托的事件处理程序
1.首先还是需要定义委托,事件中的委托和普通委托有区别的,它的参数形式如下:
public delegate void MyHandler1(object sender,MyEventArgs e);
事件中的委托具有两个参数,第一个参数表示事件的触发对象,第二个参数表示处理事件的对象,它从EventArgs类继承而来,其中:
public class MyEventArgs:EventArgs
{
public string str;
}
2.接下来需要在Class2中完成事件的声明和触发,如下:
public Class2
{
public event MyEventHandler1 Event1;
public void mEvent1(MyEventArgs e)
{
if(Event1!=null)
{
Event1(this,e);
}
}
}
class Class1
{
public Class1(Class2)
{
MyEventHandler1 mh1=new MyEventHandler1(Method1);
calss.Event1+=mh1;
}
public void Method1(object sender,MyEventAgrs e)
{
Console.WriteLine("处理事件结果?;"+e.str);
}
}
委托:
委托调用方法流程,以下面的实例作详细阐述,
1.首先需要定义一个委托,使用的是关键字delegate,如下:
public delegate void Mydelegate(string str);
他的返回类型和参数必须和它调用的方法的返回类型和参数相匹配。
2.接下来是定义该委托需要调用的方法,本例定义了两个方法,用于对字段s进行不同修改,如下:
public void Method1(string str)
{
s=5;
}
public void Method2(string str)
{
s=7;
}
3.创建委托对象,对声明的方法进行包含,如下:
Test test=new Test();
Mydelehate d1=new Mydelegate(test.Method1);
Mydelehate d2=new Mydelegate(test.Method2);
4.最后就是完成方法的调用,如下:
public void Call(Mydelegate d,string str)
{
d(str);
Console.WriteLine(str);
}
这里是用了两个参数,第一个参数是创建委托的对象,它能直接通过调用方法的参数完成对方法的调用,第二个参数是调用的方法的参数。
委托的事件处理程序
1.首先还是需要定义委托,事件中的委托和普通委托有区别的,它的参数形式如下:
public delegate void MyHandler1(object sender,MyEventArgs e);
事件中的委托具有两个参数,第一个参数表示事件的触发对象,第二个参数表示处理事件的对象,它从EventArgs类继承而来,其中:
public class MyEventArgs:EventArgs
{
public string str;
}
2.接下来需要在Class2中完成事件的声明和触发,如下:
public Class2
{
public event MyEventHandler1 Event1;
public void mEvent1(MyEventArgs e)
{
if(Event1!=null)
{
Event1(this,e);
}
}
}
class Class1
{
public Class1(Class2)
{
MyEventHandler1 mh1=new MyEventHandler1(Method1);
calss.Event1+=mh1;
}
public void Method1(object sender,MyEventAgrs e)
{
Console.WriteLine("处理事件结果?;"+e.str);
}
}
相关文章推荐
- C#中使用委托的学习笔记
- 本人有时间做了一个日程安排和名片管理系统,B/S结构,sql+ASP.NET(C#),赠送大家免费使用,需要的请留下EMAIL!
- C#实现测量程序运行时间及cpu使用时间
- 何时使用委托而不使用接口(C# 编程指南)
- 使用C#把发表的时间改为几个月,几天前,几小时前,几分钟前,或几秒前
- 2005-7-1关于C#中委托的使用
- c#中常用时间的使用
- VS2003 C#:重写键盘响应事件、动态创建控件、创建线程、在线程中使用委托在界面显示数据
- 关于C#的委托和时间
- C#测量程序运行时间及cpu使用时间(转)
- c#使用委托实现异步调用
- C#中使用TimeSpan计算两个时间的差值
- C# 委托(Delegate)使用
- C#实现测量程序运行时间及cpu使用时间
- 使用委托(C# 编程指南)
- 在C#的事件、多播中使用委托
- 在C#中使用代理的方式触发事件 (委托和事件 )
- C#中委托如何使用?一点学习心得
- C#实现测量程序运行时间及cpu使用时间(转载)
- C#测量程序运行时间及cpu使用时间(转)