c# 对于委托,事件,泛型的理解
2021-03-06 13:29
标签:delegate 调用 对象 使用 编译器 hello 实现 mat 种类型 1.委托 我对委托的理解是一个公共资源,可以把委托比作外卖小哥,外卖小哥可以帮商家A送货,也可以帮商家B送货,并且这些商家也不需要知道买他们东西的人的住址,这个送货的过程就是交给外卖小哥去做的。这样的话,分工很明确,自然整个过程的效率也提高了。 委托是一种类型(委托类型),同意需要定义,实例化,之后才能调用,就像我们用class来定义一个类,用new 来实例化一个类一样的。委托用delegate来定义一个委托类型,同意用new来实例化一个委托对象。 使用委托四步走 (1)定义委托类型 public delegate void StringProcessor(string s); 定义了一个委托,且规定了可以使用这个委托的规则,即 仅有一个string类型的参数,返回类型是void的方法 (2)有一个合乎(1)中规定的方法 public void SayHello(string msg) (3)实例化一个委托对象 StringProcessor processor = new StringProcessor(SayHello); (4)调用委托对象 processor("Lily"); 2.事件 事件类似于属性,属性是一组get,set的方法,而事件是一组add,remove的方法。 3.泛型 泛型相当于一个模板,假如A类需要实现功能F,B类也需要实现功能F,都是实现功能F,只是类型不一样,要怎样才能只写一个方法来实现呢? (1)写一个参数为object的方法,object是A的父类,也是B的父类,利用参数的协变是可以的,但是把object类型的输入参数强制转换成A或者B来使用 (2)用泛型,传入参数是T类型的,在编译时,编译器会根据使用的情况来推测这个T类型具体时什么类型,不需要强制转换 好处:1.减少强制类型转换,将检查类型 c# 对于委托,事件,泛型的理解 标签:delegate 调用 对象 使用 编译器 hello 实现 mat 种类型 原文地址:https://www.cnblogs.com/xiaoxinstart/p/12862738.html
{
Console.WriteLine(string.Format("Hello:{0}",msg));
}