-2

我有一个像这样工作的课程:

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

如您所见,构造函数接受一个对象作为参数。如何更改构造函数以使对象参数变为可选?

注意:我确实在谷歌上看过,大多数帖子都讨论了一个可选的值参数,但我需要一个可选的类型参数。

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您分配给TheObjectnull对象。

或者简单地使用 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 回答