C#中声明类变量为什么以属性形式存在

类变量和全局变量是同一个意思,和局部变量对应。只是生命周期不一样。有一个问题是,为什么类变量要以属性形式存在呢?直接声明一个变量不就可以了吗?例如stringName{g... 类变量和全局变量是同一个意思,和局部变量对应。只是生命周期不一样。有一个问题是,为什么类变量要以属性形式存在呢?直接声明一个变量不就可以了吗?例如
string Name{get;set} 和string Name 这2者有什么区别呢?如果没什么区别干嘛还要这样呢?
展开
 我来答
ChenJianCHE
推荐于2016-01-03 · TA获得超过201个赞
知道小有建树答主
回答量:245
采纳率:100%
帮助的人:235万
展开全部
属性就是类中私有变量的封装,就是为了外部不能直接调用类里的变量。
string Name{get;set} 这种是简化的写法,不需要对变量进行其他操作就可以这样写。
完整写法是:
private string _name;
public Name{
get{ return _name; }
set{ _name=value; }
}

变量被封装起来以后,在赋值或读取的时候就可以增加一些代码来修改变量的值。
比如:
private string _name;
public Name{
get{ return _name+"李"; }
set{ _name=value+“张"; }
}

将变量设置为只读:
private string _name;
public Name{
get{ return _name; }
}

只写:
private string _name;
public Name{
set{ _name=value; }
}

给变量赋值的时候调用一些其他方法

private string _name;
public Name{
get{ return _name; }
set{
_name=value;
SaveName(value);//具体什么方法你自己随意写
}
}

还有变量被修改的时候触发一些事件什么的……
如果直接使用一个变量是没有办法做到这些的~
小小木歌
2011-03-06 · TA获得超过141个赞
知道答主
回答量:190
采纳率:0%
帮助的人:168万
展开全部
听你的意思,应该还没学习c#多久吧?
封装,知道不?就是将类中的一些变量是需要保护起来的,属性就是其中。
这两则的区别在于:在其他类中你可以随意设置其他类最这个属性的访问权限即所得的值。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式