|
本帖最后由 王尼玛 于 2014-11-22 16:21 编辑
大家好,我是王尼玛。今天起我给大家讲解C#中级开发教程,本次是第三课。大家在课后有什么疑问可以跟帖留言,我会尽我所能来解答。毕竟众口难调,大家有什么建议也可以跟帖告诉我。
此教程为本人原创,转载请注明"吾爱汇编论坛王尼玛原创"
好了,废话不多说,开始今天的学习.
有朋友说不太明白我写的教程,其实编程这东西很简单,一个字,练!你光看我写的多半是一头雾水,因为你没实际跟着我讲的代码去操作,你要跟着我的代码敲,多敲代码,多练习我给的例子,再配合我例子后面的讲解,自然就明白我讲的是什么了.还不明白?跟帖问吧
1.C#的属性
在C#中,字段通常是私有的.如果要访问类中的字段,需要通过get和set访问器实现
这种结合了字段和方法的实现方式我们称为属性(property)
语法:
- private string _name;
- public string Name
- {
- get{ return _name; }
- set{_name = value }
- }
复制代码
get访问器用来返回相应的私有字段的值
get访问器与方法相似,必须用return语句返回字段的值
执行get访问器相当于读取类中私有字段的值
set访问器用来设定相应的私有字段的值
set访问器类似于返回类型为void的方法
它使用一个隐含的输入参数value
当对属性赋值时,将会调用set访问器,并将新的参数值赋予相应的字段
下面我们来实现对Student类_age的赋值和读取
- class Student
- {
- private string _name = "王尼玛";//姓名
- private int _age;//年龄
- public string _cardId;//身份证号
- public int Age
- {
- get
- {
- return _age;
- }
- set
- {
- if(value<0||value>100)
- {
- _age = 19;
- }
- else
- {
- _age = value;
- }
- }
- }
- }
复制代码- class Program
- {
- static void Main(string[] args)
- {
- Student stu = new Student();
- stu.Age = -20;
- Console.WriteLine("年龄是{0}", stu.Age);
- stu.Age = 40;
- Console.WriteLine("年龄是{0}", stu.Age);
- }
- }
复制代码 运行结果:
2.属性的数据类型
定义类中的一个属性时,属性的数据类型必须与它所访问的字段类型一致
例如字段_age是整形,那么,它的属性Age也必须是整形
如果姓名字段_name为string类型,那么它对应的属性也一定是string类型
3.属性的访问类型
属性除了可以约束数据访问外,还可以设置读,写来限定他的访问类型
属性的访问类型分为以下三种:
- 只读属性,只包含get访问器
- 只写属性,只包含set访问器
- 读写属性,包含get和set访问器
由此可以看出,get和set访问器的灵活运用么可以保障类中字段的安全
4.在编码中如何快速地创建属性
属性在C#开发中的使用是非常普遍的,除了手动输入代码外
VS还给提供了一个快捷的方法,重构-封装字段
在一个类中,定义一个字段,通常设定为私有
选中这个字段,右击鼠标,在弹出的快捷菜单中
选择重构-封装字段命令
你可以修改属性的名称
预览效果
最终效果
小技巧:
封装字段的快捷键是Ctrl+R+E
这节课就到这,谢谢大家
|
评分
-
参与人数 13 | HB +55 |
THX +12 |
收起
理由
|
消逝的过去
| |
+ 1 |
|
zxjzzh
| |
+ 1 |
[吾爱汇编论坛52HB.COM]-学破解防破解,知进攻懂防守! |
agan8888
| + 1 |
|
|
EMT
| + 1 |
+ 1 |
|
ding520
| |
+ 1 |
[吾爱汇编论坛52HB.COM]-软件反汇编逆向分析,软件安全必不可少! |
若只如初见
| + 3 |
+ 1 |
支持!我很赞同! |
Shark恒
| + 10 |
+ 1 |
这将是一大福利呀~ |
雾里看花
| + 3 |
+ 1 |
积极评分从我做起,感谢! |
逍遥枷锁
| + 2 |
+ 1 |
支持原创,感谢楼主! |
zx2cwf
| + 10 |
+ 1 |
支持!我很赞同! |
Scar-疤痕
| + 3 |
+ 1 |
论坛有你更精彩!感谢楼主! |
判官
| + 5 |
+ 1 |
感谢!新技能get√ |
起凡第一华佗
| + 17 |
+ 1 |
论坛有你更精彩!感谢楼主! |
查看全部评分
|