0

別のクラス(Class2)を継承するクラス(Class1と呼びましょう)があります。私がやろうとしているのは、Class1の継承時にClass2のcostructorメソッドを実行することです。

私はそれがこのように見える必要があると思います:

// Class1
public class Class1 : Class2
{
    public Class1()
    {

    }
}
// Class2
public class Class2
{
    public Class2()
    {
        //this is the function I want to run
    }
}

しかし、私はそれをこのように機能させることができません。
Class1からClass2()コンストラクターメソッドを実際に呼び出さなくても、これを行う方法はありますか?

4

2 に答える 2

6

コンストラクターを誤って宣言しています。voidキーワードを削除します。

// Class1 
public class Class1 : Class2 
{ 
    public Class1() 
    { 

    } 
} 
// Class2 
public class Class2 
{ 
    public Class2() 
    { 
        //this is the function I want to run 
    } 
} 

基本クラスのデフォルトコンストラクターは自動的に実行されます。デフォルト以外のコンストラクターを呼び出したい場合は、次のように行うことができます。

// Class1 
public class Class1 : Class2 
{ 
    public Class1() : base("argument")
    { 

    } 
} 
// Class2 
public class Class2 
{ 
    public Class2() 
    { 
    } 
    public Class2(string theParameter)
    {
        //code for initializing the object with the string parameter 
    }
} 
于 2012-08-30T17:36:47.023 に答える
0

Class2常にのコンストラクターを呼び出します。コード呼び出しがない場合は、base()追加されます。パラメーターClass2のないコンストラクターがなく、基本コンストラクターを明示的に呼び出さない場合、コンパイルエラーが発生します。

あなたが持っているなら、あなたは構築されClass1たに違いありません。Class2あなたは最初に持っていC_Sharp_Developerなければ持つことはできませんPerson

于 2012-08-30T17:41:30.937 に答える