1.Property設計原則
2.Indexed Property設計原則
3.Property異動事件
今天介紹Property使用上要注意的事項
1.當你的不提供修改時,建立get-only property
2.但是不要建立set-only property
3.為你的property提供一個不會影響系統的預設值
4.set value出錯時,回復之前的值
5.避免再get中丟出exception
我用下列書中的例子說明一下甚麼是Indexed Property
public class String{
public char this[int index]{
get{...}
}
}
...
string city = "Seattle";
Console.WriteLine(city[0]); //印出'S'
顯然的,Indexed Property只能被用在Collenction中
用來表式第index個元素
然而,在使用的時候必須很小心,可能一不小心就無窮迴圈了
以下是書中提到的注意事項
public class Type{
public MemberInfo this[string memberName]{...}
public MemberInfo GetMember(string memberName, Boolean ignoreCase){...}
}
提供Property異動通知,似乎是一個不錯的idea
雖然我沒有真的做過這件事
使用方法如下
public event EventHandler<EventArgs> TextChanged;
public string Text{
get { return text;}
set {
if(text!=value){
text = value;
OnTextChange();
}
}
}
protected virtual void OnTextChange(){
EventHandler<EventArgs> handler = TextChanged;
if(handler!=null){
handler(this,EventArgs.Empty);
}
}