C# 中一个类的构造函数怎么调用这个类的另一个构造函数?

例如class MyClass{private string str;private string str2;public MyClass(){this.str = "Hello";}public MyClass(string something){//调用MyClass();this.str2 = something;}}上面注释的那个语句该怎么写?

楼主不要固执,构造函数只执行类的实例化过程,当一个类在托管堆被建立后构造函数将不能再被调用,放在本例中来讲,一旦你类的实例可以执行到第二个构造函数,那么类的实例化过程事实上已经完成,下面的动作例如this.str2 = something;只是一系列的方法或动作的执行,也就是说在对你的实例进行操作,就像对实例普通的操作一样,而Myclass()是构造函数,切记是构造函数,这一点与Java不同,仔细一点讲,当实例化进程到达Myclass()的开头时就开始进行托管堆的内存分配,指针的处理等等(注:C#内部的托管指针),而当真正执行Myclass()方法的语句时已经完成的实例化过程,而Java是把这些工作放在类似C#这条语句的时候:Myclass mc;此时C#还未进行实例化,mc=new Myclass();才开始,而Java在上一句便已经实例化完毕,最大的原因是:Java没有的CLR和CTS,没有托管堆的概念,Java只把构造函数当成实例化后的一个普通函数来调用。我这样的解释楼主明白了吗?
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-06-07
就是 MyClass myclass=new MyClass();这句代码在创建对象的时候 它会自己调用无参数的构造函数 上边的同志说的 很对啊!!
第2个回答  2013-06-07
MyClass myclass=new MyClass();这样应该就可以了!
相似回答