在Class1里面的一个属性是Class2.这种情况
大家投票你属于哪种编程风格.第一种:
public class Class1
{
     private Class2 c2;
     public Class2 C2
     {
           set
           {
            c2 = value;
           }
            get
            {
             return c2;
            }
     }
}
第二种:
public class Class1
{
     private Class2 c2 = new Class2();
     public Class2 C2
     {
            get
            {
             return c2;
            }
     }
}
第三种:
public class Class1
{
     private Class2 c2;
     public Class2 C2
     {
            get
            {
             if( c2 == null)
             {
              c2 = new Class2();
             }
             return c2;
            }
     }
}

解决方案 »

  1.   

    在Class1里面的一个属性是Class2如果C2可读可写就用一;如果C2只读就用二,
    但如果new Class2()很消耗资源可以考虑用三!三种写法各有用途,无所谓喜好,因此俺弃权,哈
      

  2.   

    视情况而定,不过一般情况下推荐第二种。
    Bill Wagner在《Effective C#》中推荐这种做法,即在声明成员变量时进行初始化,而不是把他们放到构造函数中。
    由于成员的初始化语句会在构造函数之前执行,这样,如果有多个构造函数,就无需在多个构造函数中一一初始化。
    当然,第二种的Class2属性,应该也是可读写的
      

  3.   

    视情况, 这个不属于啥编码风格。一般情况都是1, c2一般应该由class1内部申明赋值
      

  4.   

    关键看需求
    第一种Class1 使用 Class2 但不持有Class2
    第二三种Class1 持有 Class2 (持有当然会使用)二三种的区别是三是使用时再构建,如果new Class2消耗较多资源,用三;否则用2最常见的情况是用二
      

  5.   

    public   class   Class1 

         public Class2 C2 { set ;get; }
    } 3.5写法