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
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
查看全文
相关阅读:
用例失败重新运行
pytest启动浏览器,失败用例截图
解决pycharm问题:module 'pip' has no attribute 'main'
pytest的HTML
pytest 的 yield
pytest的setup和teardown
pytest的fixture和conftest
pycharm运行pytest
简单易用的MongoDB
快速入门系列--CLR--02多线程
原文地址:https://www.cnblogs.com/yjmyzz/p/1063058.html
最新文章
MVC学习十一:合并资源文件(BundleConfig)
MVC学习十:MVC 特性作用和MVC 验证
MVC学习九:MVC 特性本质
MVC学习八:MVC View提交数据
JSON转换
ASP.NET整体运行机制+asp.net请求管道+页面生命周期+MVC整体运行机制原理图
Ajax去除缓存
请求管道19事件
【Java Web开发学习】Spring配置数据源
【Java Web开发学习】Spring MVC添加自定义Servlet、Filter、Listener
热门文章
人工智能学习
【Html5】使用学习
【Java Web开发学习】Spring构造器和属性注入
【Maven】plugin使用学习
Java题整
【Maven】使用学习
【MyBatis】配置文件提示
【Java SE】使用Javacv截取视频图片
跳过用例skip
预期结果 参数化parametrize
Copyright © 2011-2022 走看看