C#学习笔记之三(delegate, event, Make XML document
来源:互联网 发布:中国万网域名注册 编辑:程序博客网 时间:2024/06/10 05:25
delegates:
// 1. nomal delegates = create before run, in main
//declare
class Employee{}; class Couple{}
public delegate bool Reverse(object lhs, object rhs);
SetOrder(Reverse the delegatedFunction) {}
//init
Couple.Reverse employeeByID = new Couple.Reverse(Employee.SecondIDLower)
Couple employees = new Couple(joe, fred);
employees.SetOrder(employeeByID);
// 2.static delegates = create it before run, static readonly
// it will oppcupy memory
class Employee {
public static readonly Couple.Reverse EmployByID =
new Couple.Reverse(Employee.SecondIDLower);
}
// call
employees.SetOrder(Employee.EmployByID);
// 3. delegates as propeties = create when use it
// save memory
class Employee {
public static Couple.Reverse EmployeeByID {
get {return new Couple.Reverse(Employee.SecondIDLower);}
}
}
// 4. Muticast delegates
// must return void
public class delegateClass {
public delegate void Stringdelegate(string s);
public void Display(Stringdelegate d, string s
{
d(s);
}
}
//declare
delegateClass.Stringdelegate Writer, Logger, Storer;
//init
Writer = new delegateClass.Stringdelegate(Employee.WriteString);
Logger = new delegateClass.Stringdelegate(Employee.LogString);
Storer = new delegateClass.Stringdelegate(Employee.StoreString);
...
public static void WriteString(string s) {}
DeletegateClass.Stringdelegate mutiCast;
mutiCast = Writer + Logger;
mutiCase += Storer;
mutiCast -= Logger;
// call muticast delegates
thedelegateClass.Display(mutiCast, joe.ToString);
event:
//OfficeWatcher will subscrib Office's event
public class OfficeWatcher()
{
//subscriber Office event
public OfficeWatcher(Office)
{
office.OfficeChanged +=
new Office.OfficeChangedHandler(OnOfficeChanged);
}
//OnOfficeChanged will call when Office changed
public void OnOfficeChanged(object sender, Office eventArgs e) {}
}
//It will needed by NotifyOfficeChanged, hold data need to let
//subscribers know
public class OfficeeventArgs: eventArgs {}
public class Office {
//declare delegate, event will use it
public delegate void OfficeChangedHandler(object sender,
OffeventArgs e);
//declare event
public event OfficeChangedHandler OfficeChanged;
//This method will go through event OfficeChanged event and
//find who has subscribed this event, and let them know
protected virtual void NotifyOfficeChanged(OfficeeventArgs e){}
if (OfficeChanged != null) OfficeChanged(this, e);
}
...
public this[int index]
{
...
OfficeeventArgs e new OfficeeventArgs(ctr);
//Notify subscribers Office has changed
NotifyOfficeChanged(e);
}
}
XML document:
1. generate XML comments in code using /// comments
2. 项目属性-->配置属性-->生成-->输出-->XML文档文件
3. ctrl+shift+B 生成项目, 这时生成XML文档
4. 工具-->生成注释web页,这时生成html文件
- C#学习笔记之三(delegate, event, Make XML document
- C#学习笔记之三(delegate, event, Make XML document )
- Observer (C# Delegate - Event) - Design Patterns学习笔记(4)
- 学习C# delegate和C# event
- Unity3d-C#之Delegate和Event疑惑?
- C#学习之Delegate
- C#之delegate学习
- C# delegate event 例子
- C# delegate event关系
- C# delegate event
- C# delegate event
- C#学习之Event
- C#学习笔记-delegate 委托
- C#3.0学习笔记之(一)--预备知识Delegate
- C#学习笔记之——委托(delegate)
- Unity3D官方VR教学学习笔记之事件event与委托delegate
- C# delegate和C# event
- 【C#学习】delegate(委托) 和 event(事件)
- 待解决:FormView的ItemInserted中如何取得自动增加的ID值
- Microsoft.Net中数字签名技术
- JavaScript中的replace 达到replace.all函数替换的问题
- VB.NET and C# 语法比较手册
- 动态指定RangeValidator的值
- C#学习笔记之三(delegate, event, Make XML document
- C#学习笔记之八(Serialization, ActiveX Control)
- 夸奖一下csdn
- 年轻没有什么不可以
- C#编码标准--编码习惯
- 身价10亿的打工皇帝-唐骏
- 马云:赢在中国节目中经典语录
- 串行化XML(三)
- 用图片做提交和取消按钮