在看泛型委托之前还需要先了解委托的概念。
这里讲的委托有两种类型一种是有返回值的,另一种是事件委托。

C#泛型之泛型委托    //定义有返回值的委托 
C#泛型之泛型委托
    public delegate string GenricDelegate<T, S>(T title, S author);
C#泛型之泛型委托
C#泛型之泛型委托    
//定义事件委托。
C#泛型之泛型委托
    public delegate void GenricDelegateEnent<E,P>(E Name,P Address);
C#泛型之泛型委托
C#泛型之泛型委托    
public class GenericDelegateClass<V,F>
    }

上面我们定义及调用了泛型委托,接下来就来梆定委托。

C#泛型之泛型委托        private void btnDelegate_Click(object sender, EventArgs e)
        }

在这里我们看到我在梆定DelegateReturn的时候并没有带泛型参数。在这里的泛型参数其实是没什么意义的。因为他的类型取决于调用委托的方法的类型。也就是在前面那段代码中InvokeEvent方法的类型,这里的DelegateReturn要用泛型方法是可以随时跟InvokeEvent的参数类型保持一至。这样梆定后我们再来调用gd.GetValues("my generic post","fastyou");这样调用的其实就是DelegateReturn的方法,这就是委托的好处了,同样调用gd.InvokeEvent("my generic post","fastyou");就是GenericEvent方法。

相关文章: