首页 新闻 会员 周边

C# 如何使用给field赋初值的方式给Property赋初值

0
[已解决问题] 解决于 2014-08-12 20:57

在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 可以得到“张三”

Thirty的主页 Thirty | 菜鸟二级 | 园豆:252
提问于:2014-07-25 10:40
< >
分享
最佳答案
0

貌似 只能这样
class Person
{
private string _name;
public string Name
{
get
{
return string.IsNullOrEmpty(_name) ? "张三" : _name;
}
set {
_name = value;
}
}
}

奖励园豆:5
摇啊摇啊摇 | 菜鸟二级 |园豆:408 | 2014-07-25 14:18
其他回答(3)
0

这都不用解释,语法就是这么规定的。

Launcher | 园豆:45045 (高人七级) | 2014-07-25 10:47
0

在构造函数里赋值吧

吴瑞祥 | 园豆:29449 (高人七级) | 2014-07-25 13:43
0

类似这样写不就可以了吗

private string gender = "male";
public string Gender

{
    get { return gender; }
    set { gender = value; }
}

Albert Fei | 园豆:2102 (老鸟四级) | 2014-07-25 17:06
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册