关于C#类的构造函数重载
有一问题:想在类的构造函数中传入多个变量,其中有几个变量想有默认值,但C#不支持,只能重载。
class C1
{
public C1()
{
C1( " ");
}
public C1(String s)
{
.....
}
}
但是在编译的时候报错,此想法如何实现?
------解决方案--------------------class C1
{
public C1() : this( " ")
{
}
public C1(String s)
{
.....
}
}
------解决方案--------------------1楼正解,调用别的构造函数要用this
public C1() : this( " ")
调用基类构造函数用base
------解决方案--------------------构造函数比较特殊,因为它是由系统自动调用的,所以其不能在任何方法中被调用,即使是调用方法也是构造函数。但是有时候又在构造函数中调用另一个签名的构造函数,所以C#提供了一种语法,即this。
显然构造函数不能被任何函数所调用是有道理的。如果能被调用,那他的返回值该是多少?是不是新创建一个实例?
public C1()
{
C1( " ");
}
这样是创建一个实例还是两个实例?
C1( " ")返回值是多少?
如果创建两个实例,那么通过new那边的代码得到的是什么?