我有以下類:如何爲我繼承的類聲明構造函數?
public abstract class TableServiceEntity
{
protected TableServiceEntity();
protected TableServiceEntity(string partitionKey, string rowKey);
.....
.....
}
我從該類繼承如下:
public class AuditableTableServiceEntity : TableServiceEntity
{
public string CreatedBy { get; set; }
.....
.....
}
我使用類,如下所示:
public class Note : AuditableTableServiceEntity
{
public Note() { }
public Note(string dsValue, string pk)
: base(pk, Seq.GetNext(dsValue, pk, "Note").ToString("00000")) { }
失敗說,類AuditableTableServiceEntity沒有一個構造函數 需要兩個參數。爲了解決問題,我嘗試將以下方法添加到AuditableTableServiceEntity中。這是一個有效的事情嗎?還是有其他的方式?另外我注意到它需要我添加一個構造函數,它使用零參數。這是爲什麼?
public AuditableTableServiceEntity()
: base()
{
}
public AuditableTableServiceEntity(string pk, string rk)
: base(pk, rk)
{
}
有人可以給我建議,如果我在正確的軌道上,或者如果有更好的方法做到這一點。我是否應該將AuditableTableServiceEntity上的方法聲明爲protected,還應該將該類聲明爲abstract?
用戶不應該能夠直接構造AuditableTableServiceEntity的實例。那麼我應該讓構造函數受到保護,並且類抽象和屬性是虛擬的嗎?謝謝 –
@Melissa如果你不想讓用戶構造它,我會使構造函數受到保護,並且抽象類。這些屬性是否應該是虛擬的是一個單獨的問題... –