1

私がこのクラスを持っているとしましょう:

class foo
{
    public foo(Guid guid)
    {
        //some code here
    }

    public foo(Guid guid, bool myBool)
    {
        //some other code here
    }

    //Here I have a bunch of method/properties

    public void GenX(bool french, int width)
    {
        //my method implementation
    }
}

fooそして、このメソッドの実装を除いて基本的にすべて同じことを行う別のクラスがpublic GenX(bool french, int width)あり、コンストラクターはの実装とは異なる必要がありますfoo

このように実装barすると、コンパイラは文句を言います:'foo' does not contain a constructor that takes '0' arguments

class bar : foo
{
    public bar(Guid guid, bool myBool)
    {
        //some code here
    }

    new public void GenX(bool french, int width)
    {
        //my new method implementation
    }

    //I will be using the implementation of `foo` for the rest of the methods/properties
}

私は何を間違っていますか?これは、この種のことを行う正しい方法ですか?

これが十分に明確でない場合は、お詫びし、より明確にするよう努めます

4

2 に答える 2

0

これを試して :

class foo
{
    public foo(Guid guid)
    {
        //some code here
    }

    public foo(Guid guid, bool myBool,bool fooclass = true)
    {

        if (fooclass)
        {
            //some other code here
        }

    }

    //Here I have a bunch of method/properties

    public void GenX(bool french, int width)
    {
        //my method implementation
    }
}

class bar : foo
{
    public bar(Guid guid, bool myBool,bool barclass = true) : base(guid,myBool,false)
    {
        //some code here
    }

    new public void GenX(bool french, int width)
    {
        //my new method implementation
    }
}                                 
于 2013-09-03T13:10:37.627 に答える