zoukankan
html css js c++ java
泛型类/泛型委托示例
using
System;
using
System.Collections.Generic;
using
System.ComponentModel;
using
System.Text;
using
System.Windows.Forms;
namespace
DeletegateT
{
public
partial
class
Form1 : Form
{
public
Form1()
{
InitializeComponent();
}
private
void
button1_Click(
object
sender, EventArgs e)
{
MyClass
<
string
,
string
>
_MyClass
=
new
MyClass
<
string
,
string
>
();
//
实例化泛型类MyClass
_MyClass._MyDelegate
=
new
MyDelegate
<
string
,
string
>
(DemoMethod);
//
实例化_MyClass的泛型委托
MessageBox.Show(_MyClass.GetValues(
"
Jimmy's Book
"
,
"
Jimmy
"
));
//
此时编译器已经能确定参数的类型为String,进而通过委托调用泛型方法DemoMethod
_MyClass._MyEvent
+=
new
MyEvent
<
string
,
string
>
(DemoEvent
<
string
,
string
>
);
//
给_MyClass订阅一个事件
_MyClass.InvokeEvent(
"
Jimmy
"
,
"
China
"
);
//
激发事件
}
//
定义有返回值的委托
public
delegate
string
MyDelegate
<
T, S
>
(T title, S author);
//
定义事件委托。
public
delegate
void
MyEvent
<
E, P
>
(E Name, P Address);
public
class
MyClass
<
V, F
>
{
//
声明委托
public
MyDelegate
<
V, F
>
_MyDelegate;
//
声明事件委托
public
event
MyEvent
<
V, F
>
_MyEvent
=
null
;
public
string
GetValues(V title, F author)
{
//
调用委托
return
_MyDelegate(title, author);
}
public
MyClass()
{
}
public
void
InvokeEvent(V name, F address)
{
if
(_MyEvent
!=
null
)
{
//
调用委托
_MyEvent(name, address);
}
}
}
public
string
DemoMethod
<
T, S
>
(T title, S author)
{
return
title.ToString()
+
"
,Author:
"
+
author;
}
private
void
DemoEvent
<
V, F
>
(V name, F address)
{
MessageBox.Show(name
+
"
come from
"
+
address);
}
}
}
作者:
菩提树下的杨过
出处:
http://yjmyzz.cnblogs.com
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
查看全文
相关阅读:
svn创建分支问题.未提交就创建分支
中文繁简字对照表(继) 保留一简多繁的映射关系
struts2配置json,警告:no result type defined for type 'json'
eclipse更改修改编码方式的几种方法
URLConnection简单爬虫(转)
eclipse更改文件编码方式
java学习笔记十——堆和栈的理解
java学习笔记九——构造函数、方法重写、重载
java学习笔记三——数据类型转换
java学习笔记二——数据类型
原文地址:https://www.cnblogs.com/yjmyzz/p/1063058.html
最新文章
关于魅蓝3在Android Studio里无法识别问题
android上传图片失败问题
OSI模型
关于asp:login控件和验证码的问题?(转)
利用IIS7 解决URL访问限制问题
失效的URL访问限制(转)
kernel简介
概率论基础
贝叶斯
Python学习笔记
热门文章
编译原理(基础篇)
VI学习笔记
使用Ajax同步请求增加页面等待提示
JAVA中的集合
基于遗传算法的波浪能园区布局设计
C基础
Oracle的Package介绍(转)
Ext3.2 grid store加载结束不显示记录的问题
java调用oracle存储过程/函数。参数为复杂类型(数组,自定义类型)
jeecms自定义标签的使用方法简介
Copyright © 2011-2022 走看看