大家好,今天我们接着上节课的内容继续讲解属性。把上节课的代码稍作调整。
现在让我们来回顾一下属性,声明一个属性,首先要先声明一个跟这个属性相关联的私有字段。接下来就是属性的声明,属性的声明实现了get和set这2个访问器,也就是accessor,在读取属性值的时候,会执行get访问器,给属性赋值时会执行set访问器,当然我们可以在这2个访问器里加入可以实现特定功能的代码。属性的读取和写入跟字段的读取写入没有什么区别,只是在写入属性值的时候会自动的去执行set访问器里的代码,而执行读取属性值的时候会自动的执行get访问器里的代码。
下面我们来看一下属性的种类,属性有四个种类:
1.可读写(Read/Write)属性:需要实现get与set访问器。
2.只读(Readonly)属性:需实现get访问器。
3.只写(Writeonly)属性:需实现set访问器。
4.Static属性:只能访问静态数据。
下面我们用代码来讲解这几个属性;
我们先来设置一个只写的(Writeonly)生日属性
运行后,我们会发现,页面会跳出一个窗体警告用户的年龄非法。
现在我们考虑为User类添加一个年龄的属性,我们可以试想一下,如果年龄的属性设置了可读可写,那么用户第一次注册的时候他写入一个年龄25岁,再10年以后他的年龄还是25岁,这样就非常不合理了。所以呢年龄属性根据他的Birthday也就是他的生日来动态的计算。这样呢,年龄属性就应该声明为一个只读属性,我们来实现年龄的只读属性:
运行代码,我们可以看到1980年出生的,今年是2008年的话就是28岁。
好,下面我们来实现静态属性。现在类里面声明一个计数器,用来记录网站被访问的次数。
我们进行编译,结果是4。我们代码中创建了4个User类的实例,所以结果为4。
好,我们都已经把各个属性的种类一一描述过了,现在来看一属性最常用的地方。(视频中讲述的是C# develop工具,我用的是Visual Studio2005环境,所以用VS来讲述),我们创建一个Windows应用程序,在工具栏上拖拽一个Button控件到Form窗体上,大家将Button的属性窗体显示出来,可以看到Button按钮的所有属性,如图:
我们在Name属性中输入123这样的字符,接着下一个操作的时候,屏幕上会跳出一个警告的窗体:
为什么会弹出这个窗口呢?这就是Button按钮Name属性的set访问器所作用的效果了。输入合法的Name值,就不会有警告了。
好,今天这节课就讲到这里。
本文详细介绍了C#中的属性概念,包括可读写、只读、只写及静态属性的定义与使用方法,并通过实例演示了如何利用这些属性来增强代码的安全性和功能性。
1139

被折叠的 条评论
为什么被折叠?



