我正在努力理解C#interface
s。我明白他們允許多重繼承。我試圖編寫一個場景:員工可以查看自己的數據,但不能查看其他數據。如果員工向該經理報告,經理可以查看和編輯員工信息。如何實現一個接口來限制類的獲取和設置屬性
所以我從一個抽象類開始,因爲每個人都是一個用戶,並且度假也是一樣。
public abstract class User {
string _id;
string _firstName;
string _lastName;
double _salaryAmount;
double _bonusAmount;
int _vacationBalance;
public void TakeVacation(int hours) {
_vacationBalance -= hours;
}
//do I implement this here?
/*
public int SalaryAmount{ }
*/
}
我應該使用一個接口來定義IEditable
和IViewable
? 我可以做這樣的事嗎?
public interface IEditable {
double SalaryAmount { get; set; }
}
public class Employee : User, IEditable {
public double SalaryAmount {
get {
return base._salaryAmount;
}
set {
base._salaryAmount = value;
}
}
}
//Will I need a ReadOnlyEmployee or something?
我只是不知道如何阻止經理編輯用戶,或如何編寫一個接口這種類型的情況。
所以,我怎麼能限制員工的鑄造到IEditable只有誰管理該員工的經理人? – tedski
我不確定你可以使用類系統來做到這一點。誰管理誰是代碼外部的知識。您可以控制隱式/顯式轉換(http://msdn.microsoft.com/zh-cn/library/09479473.aspx),以便您可以查看運行並返回空接口(如果您設置的條件未滿足)。 – Dweeberly