新浪博客

如何在C#中使用get及set方法定义属性

2014-07-30 12:13阅读:
由于C#不提倡将保护级别设置为public。如果过设置为public,则用户能够在外部任意操作,这大大降低了安全性能。因此,C#的默认保护级别为private。有时需要在一个类中对另外一个类中的private字段进行操作,但直接操作会提示权限错误。这时就可以使用属性进行完成。
例如,存在一个私有型的变量age,即:private age。要在另一个类中对他进行操作,需要定义它的一个保护级别为public的属性变量Age,即:public Age。(一般约定,私有型变量的首字母为小写,对应的属性变量的首字母大写)。具体的程序如下:
namepace 私有字段属性
{
private class person
{
private int age
public int Age
{
get {return age};
set {age = value};
}
}
}
当需要对字段age赋值是,会调用set方法,通过对属性变量Age进行赋值,而不是直接对字段age赋值。

当不需要对属性值进行任何处理,直接使用set或get,可利用快捷键给私有字段添加属性,方法如下:光标定位于需要设置属性的字段 -> 右键 -> 重构 -> 封装,则会自动生成属性。
允许外部访问的变量一定要声明为属性,属性可分为:读写、只读、只写三种类型。
读写:既有get又有set;
只读:只有get;
只写:只有set;
注意:属性变量的保护级别必须为public。
此外,还可以通过对set和get方法的属性值进行检验,以保证字段值的合法性。例如对年龄赋值,年龄一般在0~100之间。具体如下:
namespace 私有字段属性
{
private int age;
public int Age
{
get{return age};
if (value>0&&value<100)
{
set{age = value};
}
else
{
set{age = 0};
}
}
}

我的更多文章

下载客户端阅读体验更佳

APP专享