-2

次のように機能するクラスがあります。

public class MyClass
{
    MyClass(SomeOtherObject TheObject)
    {
       ....
    }
}

ご覧のとおり、コンストラクターはオブジェクトをパラメーターとして受け取ります。object パラメーターがオプションになるようにコンストラクターを変更するにはどうすればよいですか?

注: Google で調べましたが、ほとんどの投稿ではオプションの値パラメーターについて説明していますが、オプションの型パラメーターが必要です。

4

3 に答える 3

7

コンストラクターをオーバーロードします。

public class MyClass
{
    MyClass()
    {
       ....
    }
    MyClass(SomeOtherObject TheObject)
    {
       ....
    }
}
于 2013-03-06T16:54:48.080 に答える
3

なぜこのようにしないのですか:

public class MyClass
{
    MyClass(SomeOtherObject TheObject = null)
    {
       ....
    }
}

このようにして、オブジェクトの構築に関するパラメーターを省略します。

var cls = new MyClass(); //NO PARAMETER SPECIFIED

field/propertyこのようにして、この場合、割り当て先TheObject がなる可能性のある内部を管理する必要がありますnull

または、単純に ctors ctors のオーバーロードを使用します。

public class MyClass
{
    MyClass(SomeOtherObject TheObject)
    {
       ....
    }

    MyClass() : this(null)
    {
       ....
    }
}
于 2013-03-06T16:55:01.430 に答える
3

コンストラクターのオーバーロードは機能しますか?

public class MyClass
{
    MyClass(Object TheObject)
    {
    }

    MyClass()
    {
    }
}
于 2013-03-06T16:55:10.633 に答える