나는 다음과 같은 클래스가 다음과 같이 나는이 클래스에서 상속내가 상속 한 클래스의 생성자를 어떻게 선언합니까?
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로 선언해야하며 해당 클래스를 추상으로 선언해야합니까?
사용자는 AuditableTableServiceEntity의 인스턴스를 직접 구성 할 수 없어야합니다. 그렇다면 생성자를 보호하고 클래스 추상화 및 속성 가상화를해야합니까? 감사합니다 –
@ Melissa 당신이 그것을 건설하고 싶지 않다면, 나는 생성자를 보호하고 클래스 추상을 만들 것입니다. 속성이 가상이어야하는지 여부는 별도의 문제입니다. –