📄 codefile1.cs
字号:
/*Visual C# 示例
“事件”示例请参见
事件教程 | 教程示例
示例文件:Events.csproj
Events.sln
readme.txt
Events1
events1.cs
Events1.csproj
Events2
events2.cs
Events2.csproj
加载示例解决方案
复制所有文件
帮助
本示例说明如何在 C# 中声明事件、调用事件和与事件挂钩。
该示例包含事件教程的源代码。
在 Visual Studio 内生成并运行示例
生成并运行“事件”示例
打开解决方案 (Events.sln)。
在解决方案资源管理器中,右击“Events1”项目并单击“设为启动项目”。
在“调试”菜单中,单击“开始执行(不调试)”。
对 Events2 重复第 2 步和第 3 步。
从命令行生成并运行示例
生成并运行“事件”示例
使用“更改目录”命令转到 Events1 目录。
键入下列内容:
csc events1.cs
events1
使用“更改目录”命令转到 Events2 目录。
键入下列内容:
csc events2.cs
events2
请参见
事件教程 | 教程示例
--------------------------------------------------------------------------------
将文档反馈发送给 Microsoft
? 2002 Microsoft Corporation。保留所有权利。
--------------------------------------------------------------------------------
返回到页首*/
//版权所有 (C) 2000 Microsoft Corporation。保留所有权利。
// events1.cs
using System;
namespace MyCollections
{
using System.Collections;
// 用于与更改通知挂钩的委托类型。
public delegate void ChangedEventHandler(object sender, EventArgs e);
// 一个类,该类与 ArrayList 类似,但每当列表更改时将发送
// 事件通知。
public class ListWithChangedEvent: ArrayList
{
// 一个事件,每当列表元素更改时,客户端可以使用该事件
// 来获得通知。
public event ChangedEventHandler Changed;
// 调用 Changed 事件;每当列表更改时调用
protected virtual void OnChanged(EventArgs e)
{
if (Changed != null)
Changed(this, e);
}
// 重写可更改列表的某些方法;
// 在重写每个方法后调用事件
public override int Add(object value)
{
int i = base.Add(value);
OnChanged(EventArgs.Empty);
return i;
}
public override void Clear()
{
base.Clear();
OnChanged(EventArgs.Empty);
}
public override object this[int index]
{
set
{
base[index] = value;
OnChanged(EventArgs.Empty);
}
}
}
}
namespace TestEvents
{
using MyCollections;
class EventListener
{
private ListWithChangedEvent List;
public EventListener(ListWithChangedEvent list)
{
List = list;
// 将“ListChanged”添加到“List”中的 Changed 事件。
List.Changed += new ChangedEventHandler(ListChanged);
}
// 这将在列表发生更改时调用。
private void ListChanged(object sender, EventArgs e)
{
Console.WriteLine("This is called when the event fires.");
}
public void Detach()
{
// 分离事件并删除列表
List.Changed -= new ChangedEventHandler(ListChanged);
List = null;
}
}
class Test
{
// 测试 ListWithChangedEvent 类。
public static void Main()
{
// 创建新的列表。
ListWithChangedEvent list = new ListWithChangedEvent();
// 创建侦听列表的更改事件的类。
EventListener listener = new EventListener(list);
// 在列表中添加和移除项。
list.Add("item 1");
list.Clear();
listener.Detach();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -