C#编程的的问题

来源:百度知道 编辑:UC知道 时间:2024/06/11 06:34:26
属性的作用

属性结合了字段和方法的多个方面。对于对象的用户,属性显示为字段,访问该属性需要相同的语法。对于类的实现者,属性是一个或两个代码块,表示一个 get 访问器和/或一个 set 访问器。当读取属性时,执行 get 访问器的代码块;当向属性分配一个新值时,执行 set 访问器的代码块。不具有 set 访问器的属性被视为只读属性。不具有 get 访问器的属性被视为只写属性。同时具有这两个访问器的属性是读写属性。

使用属性是最大程度保持类中的成员变量不对外界暴露。可以限制外界对其访问的权限。

与字段不同,属性不作为变量来分类。因此,不能将属性作为 ref(C# 参考) 参数或 out(C# 参考) 参数传递。

属性具有多种用法:它们可在允许更改前验证数据;它们可透明地公开某个类上的数据,该类的数据实际上是从其他源(例如数据库)检索到的;当数据被更改时,它们可采取行动,例如引发事件或更改其他字段的值。

属性也是为了一个类中的私有变量进行封装,这样做是为了跟好的面向对象, 当然对类中私有变量的访问及设置也可以通过方法来实现,但没有属性来的简洁

我给你举个例子,你就明白了:

大家知道,窗体有个Location属性,用于确定窗体的位置

如果是字段,更改这个值对窗体本身不会有什么影响,而如果是属性,就可以移动窗体到指定位置
private Point _location;//字段
public Point Location //属性
{
get
{
return _location;
}
set
{
_location=value;
MoveWindowTo();//看这里,不仅仅更改了坐标值,还要把窗体移动到该坐标处,而字段不可能完成这样的任务
}
}

类--仓库
属性--仓库中的东西。
仓库中的东西可以干什么?
属性就可以干什么?
自己体会下

变量的封装,在类的实例中调用。

现在给你