程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C#學習筆記之三(delegate, event, Make XML document )

C#學習筆記之三(delegate, event, Make XML document )

編輯:關於C語言
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文件

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved