日期:2014-05-19  浏览次数:20919 次

c# 类 默认构造函数
为什么我定义了一个带参数的构造函数之后,系统就不提供默认构造函数了?

为什么要这样设定?


在没定义默认构造函数之前,一直提供默认构造函数给我们使用不是更方便吗?

------解决方案--------------------
你把无参数得构造函数去掉了吧?
把原来的留着.
------解决方案--------------------
要显示提供无参函数
------解决方案--------------------
这个问题你得去问微软了
------解决方案--------------------
自己定义了一个constructor后就会把原来default的cover掉,应该是为了防止用户乱new对象吧,既然都自己定义了constructor为什么还用默认的呢?也许就是这个原因吧,要用就自己再重载一个
------解决方案--------------------
如果还允许默认的话,那你要求实例化对象必须带参数时怎么办?
------解决方案--------------------
不是微软这样设定的 C++, Java也是这样的 大凡编译器都这样...
------解决方案--------------------
不是微软这样设定的 C++, Java也是这样的 大凡编译器都这样...

------解决方案--------------------
如果系统一直提供默认构造函数,
但是你设计的类如果带有一个默认构造函数会导致系统问题或者其他使用者的误解,
此时怎么办?添加一个语法,让编译器不生成默认构造函数?
------解决方案--------------------
首先,你没有搞清楚默认的构造函数是什么?
构造函数是必须的,如果你没有写,为了防止错误,系统会自动创建一个,供初始化时使用,
因为当你new一个窗体(或具体一个类)时,且没有指定调用构造函数,会自动去调用默认的构造函数。
另外,你说只用默认的,那么当你想在窗体初始化时传递参数该怎么办?
构造函数可以有多个,是为了初始化时可以有多种选择,
最后,一般情况下,不管有没有别的构造函数,我们都把一个无参的给写上,防止我们在new他的时候不带参数而报错。

------解决方案--------------------
写一个空的不带参数的构造函数