首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

C#中实例化以后,实例再调用自己的构造函数

2012-12-14 
C#中实例化之后,实例再调用自己的构造函数之前用C++,可以在一个类已经实例化之后,再去强行调用自身的构造

C#中实例化之后,实例再调用自己的构造函数
之前用C++,可以在一个类已经实例化之后,再去强行调用自身的构造函数的.


class TestCls
{
public:
TestCls(){
cout<<"TestCls Ctor"<<endl;
}
};

int main(int argc, char* argv[])
{
TestCls tc;//实例化
tc.TestCls::TestCls();//实例化后再执行构造函数


在C#里面,不知道对应的功能要怎么写?刚刚新学,希望朋友们教一下,谢谢
[最优解释]
调用构造函数:自己类调用自己的本来的构造函数



Student extends Person{ 
private String school; 

Student(String name, String location, String school) { 
super(name, location); 
this.school = school; 


Student(String name, String school) { 
this(name, "beijing", school);  


public String info { 
 super.info + "school" + school; 



[其他解释]
在外部用实例调自己的构造?这个只能变通一下做到吧。
class TestCls
{
public TestCls(){Construct();}
public void Construct(){...}
}

TestCls tc = new TestCls();
tc.Construct();
[其他解释]
完全违反为自然界规律,有见过别人生出来之后在生自己出来的吗!除非是克隆人!
[其他解释]
不太明白,为什么都实例化之后了还要再次调用构造函数,如果是要实现什么功能的话,
在类中加个函数不就可以了吗~
[其他解释]
构造函数在定义类对象时由系统自动调用,而不允许像其它成员函数那样由用户直接调用。
我认为是不可以的  只能变通下  

[其他解释]
搅糊涂了,看来技术不够!
[其他解释]
楼上妙喻
[其他解释]
TestCls tc;//实例化
    tc.TestCls::TestCls();//实例化后再执行构造函数

 
C#
TestCls tc = new TestCls();
tc.TestCls();
[其他解释]
1楼的代码试过不行.报错是
Error1
'TestCls' does not contain a definition for 'TestCls' and no extension method 'TestCls' accepting a first argument of type 'TestCls' could be found (are you missing a using directive or an assembly reference?)
我其实是自己先试过像1楼那样写,不行,再上来问的.

先谢谢2楼的代码,不过我是想在类的外面,实例化之后,某实例再显式地调用自己的构造函数.
[其他解释]
好可怜,没人回答我.
[其他解释]
谢谢5楼的回复.
6楼说得对,实例化之后没必要去调用构造函数.
就算是C++里,也极少会出现这样的调用.

我只是好奇,想知道在C#里面,有没有可能说实例化之后,在外部再去执行构造函数的.
[其他解释]
~~>_<~~ 自己顶自己
[其他解释]
楼上妙喻,但调用构造函数不能等同于对象出生.
可不可以认为 对象的出生 是系统为其分配了内存.构造函数只是初始化一下成员变量.并不实现分配内存的动作.
那为什么不能再次调用构造函数?是C#不允许这样做,还是.NET Framework 不允许这样做?
[其他解释]
C#没有这种语法。
构造函数就是分配内存。
你可以变通实现
------其他解决方案--------------------


自己写一个构造函数,什么也没有,怎么分配内存?
是系统给我们分配了内存,再调用我们的构造函数来初始化成员,还是怎样的?
[其他解释]
可以定义多个不同签同的构造函数

热点排行