我有一个像这样工作的课程:
public class MyClass
{
MyClass(SomeOtherObject TheObject)
{
....
}
}
如您所见,构造函数接受一个对象作为参数。如何更改构造函数以使对象参数变为可选?
注意:我确实在谷歌上看过,大多数帖子都讨论了一个可选的值参数,但我需要一个可选的类型参数。
我有一个像这样工作的课程:
public class MyClass
{
MyClass(SomeOtherObject TheObject)
{
....
}
}
如您所见,构造函数接受一个对象作为参数。如何更改构造函数以使对象参数变为可选?
注意:我确实在谷歌上看过,大多数帖子都讨论了一个可选的值参数,但我需要一个可选的类型参数。
重载构造函数。
public class MyClass
{
MyClass()
{
....
}
MyClass(SomeOtherObject TheObject)
{
....
}
}
为什么不这样:
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)
{
....
}
}
构造函数重载会起作用吗?
public class MyClass
{
MyClass(Object TheObject)
{
}
MyClass()
{
}
}