Property 一般用來封裝 private member field。
- Property 應該愈簡單愈好,且不該 throw exception
- Property 不該與其他 Property 相關。設定一個 Property 時不該影響到其他的 Property
- Property 可以以任意順序來設定
Property 與 Method 有一定的相似度。何時應該用 Method 呢?
- 代表一種轉換時。例如 .ToString()
- 使用 Property 會導致 side effect 時
- 須要較長時間運算時
- 回傳陣列時
public class User { public Role[] Roles { get { return roles_from_database; } } } //calling method User user = new User(); for (int i = 0; i < user.Roles.Length; i++) { Role role = user.Roles[i]; //more }此時應改成 method, 就不會讓人誤會了
public class User { public Role[] GetRoles() { get { return roles_from_database; } } } //calling method User user = new User(); Role[] userRoles = user.GetRoles(); for (int i = 0; i < userRoles .Length; i++) { Role role = userRoles[i]; //more }
沒有留言:
張貼留言