在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;
}
}
}
大家投票你属于哪种编程风格.第一种:
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;
}
}
}
但如果new Class2()很消耗资源可以考虑用三!三种写法各有用途,无所谓喜好,因此俺弃权,哈
Bill Wagner在《Effective C#》中推荐这种做法,即在声明成员变量时进行初始化,而不是把他们放到构造函数中。
由于成员的初始化语句会在构造函数之前执行,这样,如果有多个构造函数,就无需在多个构造函数中一一初始化。
当然,第二种的Class2属性,应该也是可读写的
第一种Class1 使用 Class2 但不持有Class2
第二三种Class1 持有 Class2 (持有当然会使用)二三种的区别是三是使用时再构建,如果new Class2消耗较多资源,用三;否则用2最常见的情况是用二
{
public Class2 C2 { set ;get; }
} 3.5写法