2
class experiment
{

    int xCoord = 0;
    int yCoord = 0;

    public experiment(int x, int y) {
        this.xCoord = x;
        this.yCoord = y;
    }
}

class result :experiment{
    int zCoord = 0;

    public result(int z) : base(x,y) 
    {
        this.zCoord = z;
    }

}

誰でもこの単純な問題を解決するのを手伝ってくれますか? base(x,y)「x」という名前が現在のコンテキストに存在せず、y にも当てはまるというエラーが発生しています。

4

2 に答える 2

8

xおよびyクラスのローカル フィールドでexperimentあり、継承されたクラスでは表示されません。次のようなデフォルト値で基本コンストラクターを呼び出すことができます。

public result(int z) : base(0,0) 

また、Microsoft の一般的な命名規則に従ってください。クラス名は大文字で始まります。

編集:


x子クラスにパラメーターとを受け取るコンストラクターがyあり、次のような値で基本クラスのコンストラクターを呼び出すとよいでしょう。

public result(int x, int y, int z) : base(x,y) 
{
    this.zCoord = z;
}
于 2013-10-19T18:10:54.383 に答える
4

結果クラスのコンストラクターに x,y はありません。

コンストラクター z に渡しますが、基本コンストラクターに x と y を受け取るように指示します。その時点では x と y はありませんが。

これを試して:

public result(int z, int x, int y) : base(x,y) 
{
    this.zCoord = z;
}

または修正値を設定します (変数なし):

public result(int z) : base(0, 0) 
{
    this.zCoord = z;
}
于 2013-10-19T18:12:18.620 に答える