积极答复者
关于c#3.0 对象初始值设定项的 疑问

问题
-
public string Name { get; set; }
public int Age { get; set; }static void Main(string[] args)
{
var cat = new Cat { Name = "BoSi", Age = 3 };
}
这段代码我是能够理解的;
public class Cat
{
public string Name { get; set; }
public int Age { get; private set; }static void Main(string[] args)
{
var cat = new Cat { Name = "BoSi", Age = 3 };
}
}
这段代码我就不能理解了,对Age属性设置了只读,那么Age字段的值怎么赋予呢?如果这个值没有值,那么有这个属性还有意义吗?请帮忙解答一下。
答案
-
我不确定是否明白楼主的意思。Age属性只是设置了公开get,私有set,而不是只读,只读的话,应该是这样的:
public int Age { get; }
因为它是private set,因此包含这个属性的类内的成员是可以对它进行设置的。如果是只读属性,可以在声明的时候赋值:public int Age { get { return 28; } }
理解的越多,需要记忆的就越少- 已编辑 RickyLinModerator 2010年3月11日 0:58 代码着色
- 已建议为答案 偏僻小镇的镇长助理 2010年3月11日 1:13
- 已标记为答案 KeFang Chen 2010年3月12日 4:31
全部回复
-
我不确定是否明白楼主的意思。Age属性只是设置了公开get,私有set,而不是只读,只读的话,应该是这样的:
public int Age { get; }
因为它是private set,因此包含这个属性的类内的成员是可以对它进行设置的。如果是只读属性,可以在声明的时候赋值:public int Age { get { return 28; } }
理解的越多,需要记忆的就越少- 已编辑 RickyLinModerator 2010年3月11日 0:58 代码着色
- 已建议为答案 偏僻小镇的镇长助理 2010年3月11日 1:13
- 已标记为答案 KeFang Chen 2010年3月12日 4:31