在C#中,我知道的可以写1个field赋值,对应1个Property,写set and get,但是我不想写field的时候编译器会自动给我加上,我现在有1个property需要写set and get做值的控制,但是如果创建这个对象调用了无参数构造函数(假定构造函数中不会去给该属性赋值),然后我调用对象的这个属性,想得到1个默认的初始值,比如字符串属性给赋值为“小明”,如何才能做到呢?
----------------
以下代码编译报错,我想的就是基本是这个样子的写法,懂的进~~,求解释原因,为什么不能这么写?
class Persion
{
public string Name {internal set; get} = "张三";
}
//想 Persion p = new Persion();
//p.Name 可以得到“张三”
貌似 只能这样
class Person
{
private string _name;
public string Name
{
get
{
return string.IsNullOrEmpty(_name) ? "张三" : _name;
}
set {
_name = value;
}
}
}
这都不用解释,语法就是这么规定的。
在构造函数里赋值吧
类似这样写不就可以了吗
private string gender = "male";
public string Gender
{
get { return gender; }
set { gender = value; }
}