我創建了一系列包含基本屬性的接口/抽象類,我想計算屬性和多重繼承。C#:非抽象計算屬性的多重繼承
public abstract class /interface Modifiable
{
public DateTime ModifiedDate {get; set;}
public boo ModifiedToday
{
get { return DateTime.Now.AddDays(-1).CompareTo(ModifiedDate) >= 0; }
}
public bool ModifiedInLastWeek
{
get { return DateTime.Now.AddDays(-7).CompareTo(ModifiedDate) >= 0; }
}
}
public abstract class /interface Deletable
{
public DateTime DeletionDate {get; set;}
public bool Deleted
{
get { return DeletionDate != default(DateTime) }
}
}
然後我有一個繼承自這兩個Interfaces/Abstract類的類。
public class Something : Modifiable, Deletable
{
//
}
但是一個類不能從兩個抽象類繼承。所以我需要使用接口,但接口我不能有方法體。然後我必須在多個類中定義相同的確切函數,以使用接口來實現這些簡單的布爾屬性。
我也不希望有可修改的從Deletable繼承,因爲我可能想要某些東西是可修改但不可刪除的。這些具體的類不是我的問題,我只是用它們來說明我的問題。
是否有一種設計模式通過允許函數體模仿抽象類,但允許像接口那樣的多個繼承者?
這是沒有直接關係您可能想要使用'DateTime?'(可爲空的DateTime),那麼您可以執行'DeletionDate!= null'而不是'return DeletionDate!= default(DateTime )'。 2.這是一個C#約定,在接口名稱之前加上「I」,所以你會想要'IModifiable'和'IDeletable'。 – 2011-03-04 20:42:37