理解C#中属性的概念和作用
2008-11-27 13:53
295 查看
1.文字说明
属性结合了字段和方法的多个方面。
对于对象的用户,属性显示为字段,访问该属性需要完全相同的语法。
对于类的实现者,属性是一个或两个代码块,表示一个 get 访问器和/或一个 set 访问器。
当读取属性时,执行 get 访问器的代码块;当向属性分配一个新值时,执行 set 访问器的代码块。
不具有 set 访问器的属性被视为只读属性。不具有 get 访问器的属性被视为只写属性。同时具有这两个访问器的属性是读写属性。
get 访问器体与方法体相似。它必须返回属性类型的值。执行 get 访问器相当于读取字段的值。get 访问器必须以 return 或 throw 语句终止,并且控制权不能离开访问器体(也就是说return 或 throw只能在get的“{}”中出现,写到get的“{}”外错误)。
set 访问器类似于返回类型为 void 的方法。它使用称为 value 的隐式参数,此参数的类型是属性的类型。当对属性赋值时,用提供新值的参数调用 set 访问器。
2.举例说明
例子1:
设置Month变量读写属性:
public class Date
{
private int month;
public int Month
{
get
{
return month;
}
set //set中可以写一些对赋值的约束的语句,可以起到检测的作用!
{
if ((value > 0) && (value < 13))
{
month = value;
}
}
}
使用Month变量读写属性:
Data dt=new Data();
dt.Month=某某; //系统会自动调用Month变量的属性中set程序部分
某某=dt.Month; //系统会自动调用Month变量的属性中get程序部分
例子2:
设置Month变量只读属性:
public class Date
{
private int month;
public int Month
{
get
{
return month;
}
}
例子3:
设置Month变量只写属性:
public class Date
{
private int month;
public int Month
{
set
{
month = value;
}
}
属性结合了字段和方法的多个方面。
对于对象的用户,属性显示为字段,访问该属性需要完全相同的语法。
对于类的实现者,属性是一个或两个代码块,表示一个 get 访问器和/或一个 set 访问器。
当读取属性时,执行 get 访问器的代码块;当向属性分配一个新值时,执行 set 访问器的代码块。
不具有 set 访问器的属性被视为只读属性。不具有 get 访问器的属性被视为只写属性。同时具有这两个访问器的属性是读写属性。
get 访问器体与方法体相似。它必须返回属性类型的值。执行 get 访问器相当于读取字段的值。get 访问器必须以 return 或 throw 语句终止,并且控制权不能离开访问器体(也就是说return 或 throw只能在get的“{}”中出现,写到get的“{}”外错误)。
set 访问器类似于返回类型为 void 的方法。它使用称为 value 的隐式参数,此参数的类型是属性的类型。当对属性赋值时,用提供新值的参数调用 set 访问器。
2.举例说明
例子1:
设置Month变量读写属性:
public class Date
{
private int month;
public int Month
{
get
{
return month;
}
set //set中可以写一些对赋值的约束的语句,可以起到检测的作用!
{
if ((value > 0) && (value < 13))
{
month = value;
}
}
}
使用Month变量读写属性:
Data dt=new Data();
dt.Month=某某; //系统会自动调用Month变量的属性中set程序部分
某某=dt.Month; //系统会自动调用Month变量的属性中get程序部分
例子2:
设置Month变量只读属性:
public class Date
{
private int month;
public int Month
{
get
{
return month;
}
}
例子3:
设置Month变量只写属性:
public class Date
{
private int month;
public int Month
{
set
{
month = value;
}
}
相关文章推荐
- C# 非模式窗体show()和模式窗体showdialog()的区别及Owner属性的理解
- Effective Objective-C 2.0 — 第二章 对象、消息、运行期 - 第六条:理解“属性”这一概念
- C# 基础概念理解
- C# 中get和set属性的作用
- C#接口作用的深入理解
- C#之理解接口的作用
- 很通俗的C#接口 作用理解。
- 转载:C# this.invoke()作用 多线程操作UI 理解二
- 对C#流概念的理解
- 我对属性的简单理解(C#)
- C#接口作用的深入理解
- JavaScript的作用域和块级作用域概念理解
- c#进阶理解property属性和属性值之惑
- C#中属性的作用
- JavaScript的作用域、块级作用域(私有作用域)概念理解
- C#中Dock属性的作用
- JavaScript的作用域和块级作用域概念理解
- 文件, 文件流对象ofstream, 缓冲区, 三个不同的概念,关键 理解outfile.clear()作用的关键
- JavaScript的作用域和块级作用域概念理解
- c#和IL和CLR的概念理解