C#中声明类变量为什么以属性形式存在
类变量和全局变量是同一个意思,和局部变量对应。只是生命周期不一样。有一个问题是,为什么类变量要以属性形式存在呢?直接声明一个变量不就可以了吗?例如stringName{g...
类变量和全局变量是同一个意思,和局部变量对应。只是生命周期不一样。有一个问题是,为什么类变量要以属性形式存在呢?直接声明一个变量不就可以了吗?例如
string Name{get;set} 和string Name 这2者有什么区别呢?如果没什么区别干嘛还要这样呢? 展开
string Name{get;set} 和string Name 这2者有什么区别呢?如果没什么区别干嘛还要这样呢? 展开
2个回答
展开全部
属性就是类中私有变量的封装,就是为了外部不能直接调用类里的变量。
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);//具体什么方法你自己随意写
}
}
还有变量被修改的时候触发一些事件什么的……
如果直接使用一个变量是没有办法做到这些的~
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);//具体什么方法你自己随意写
}
}
还有变量被修改的时候触发一些事件什么的……
如果直接使用一个变量是没有办法做到这些的~
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询