王尼玛 发表于 2014-11-22 03:38

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:44

扫地僧 发表于 2014-11-22 03:43
辛苦了,大半夜还在做教程

{:5_116:}早点休息,

Scar-疤痕 发表于 2014-11-22 07:48

楼主,辛苦了

520Kelly 发表于 2014-11-22 09:05

C#用peid扫描会出现什么情况?

keke120 发表于 2014-11-22 09:49

感谢 您的教程   之前学过一段时间C#   只是了解了一些 皮毛现在有你的教程可以系统的学习一下 ,并且没有书上讲的那么繁琐,再次感谢,继续推出你的教程,等待你的下一季

ferline8 发表于 2014-11-22 11:01

教程很好,不用还是支持!

扯淡 发表于 2014-11-22 12:36

如果英文超级烂。能不能学- -

小人 发表于 2014-11-22 15:04

c#崛起    谢谢大大的教程

王尼玛 发表于 2014-11-22 16:26

keke120 发表于 2014-11-22 09:49
感谢 您的教程   之前学过一段时间C#   只是了解了一些 皮毛现在有你的教程可以系统的学习一下 ,并且 ...

感谢支持{:5_188:}

王尼玛 发表于 2014-11-22 16:27

扯淡 发表于 2014-11-22 12:36
如果英文超级烂。能不能学- -

当然可以了,
页: [1] 2
查看完整版本: C#中级开发原创教程第三课-封装