C#中级开发原创教程第三课-封装
本帖最后由 王尼玛 于 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
这节课就到这,谢谢大家
扫地僧 发表于 2014-11-22 03:43
辛苦了,大半夜还在做教程
{:5_116:}早点休息,
楼主,辛苦了
C#用peid扫描会出现什么情况?
感谢 您的教程 之前学过一段时间C# 只是了解了一些 皮毛现在有你的教程可以系统的学习一下 ,并且没有书上讲的那么繁琐,再次感谢,继续推出你的教程,等待你的下一季
教程很好,不用还是支持!
如果英文超级烂。能不能学- -
c#崛起 谢谢大大的教程
keke120 发表于 2014-11-22 09:49
感谢 您的教程 之前学过一段时间C# 只是了解了一些 皮毛现在有你的教程可以系统的学习一下 ,并且 ...
感谢支持{:5_188:}
扯淡 发表于 2014-11-22 12:36
如果英文超级烂。能不能学- -
当然可以了,
页:
[1]
2