我是刚刚学习c#的
在看到属性和构造函数的时候
有点迷惑
当二者都出现的时候
构造函数好象没有被用到
是不是有了属性
构造函数可有可无?

解决方案 »

  1.   

    呵呵,构造函数,如果不显示声明的话,那系统为自动创建一个 public yourclassname(){}的构造函数,构造函数和属性之是没有太大的联系,构造函数和析构函数,是必须有的,只不过自己不声明的话,那系统会为我们自己生成一个,没有参数的构造函数和析构函数,属性只是在操作和使用数据成员的时候比较灵活方便一些,如果你愿意的话可以用也可以不用,根据你当前所开发的程序来说。
      

  2.   

    LZ 的问题根源不是 C#,而是 OO 没理解透彻!构造函数是用于实例化的,而属性用于保存实例的状态!你说构造函数有用没?如果不能实例化,那肯定是静态类或抽象类,看这都是 OO 的基础知识,并非 C# 独有的。
      

  3.   

    是不是有了属性,构造函数可有可无?
    不是的,应该是两者没有直接的关系,构造函数是必须存在的,只是如果我们不写时,会自动声明一个不带参数的函数,且前面不能有返回值类型,连void也不能写,作用是用来实例化这个类,就是说每次new这个类的时候都会自动去调用这个构造函数,不用我们操心,否则这个类你就用不成。
    而对属性而言,我们可以把它看成是类的一个变量,作用就很明了了~~
      

  4.   

    构造函数会暗地里初始化类的字段.当然,如果你已经出始化.
    而属性用于保存实例的状态!(转自yixianggao() )