2010-01-19 61 views
1

我有1個抽象類調用靜態方法,直到現在不需要任何參數。這最近已經改變了。實際上,靜態方法存在於另一個類中,並設置了BaseMessageDirectory的值,但在下面的示例中我簡化了一些東西...C#可能有一個抽象類中的構造函數?

所以現在我想創建我的派生類,以便它們可以初始化一些繼承期間在父類中需要的屬性,這可能嗎?

例如....

public abstract class ParentClass 
    { 
      protected string BaseMessageDirectory; 

      protected ParentClass(EnumOperationType operationType) 
      { 
       if(operationtype == 1) 
        { 
        BaseMessageDirectory = "one"; 
        } 
       else 
        { 
        BaseMessageDirectory = "two"; 
        } 
      } 
    } 

回答

6

是的,你可以定義一個構造函數,並且所有子類必須調用它:所以

public class Child : ParentClass 
{ 
    public Child() : base(EnumOperationType.One) { ... } 
} 
+0

如果我正確認識你 - 抽象類中的構造函數對於子類是強制的? – 2010-01-19 10:10:27

+1

是的。子類必須調用其中一個基類構造函數。 – 2010-01-19 10:11:58

+0

非常感謝,這對我很有幫助。 – 2010-01-19 10:12:20