当前位置:首页 > 学习英语 > 专业英语 > 计算机英语>正文

c中get set的用法

【计算机英语】 2016-03-20本文已影响

  下面小编就跟你们详细介绍下c中get set的用法的用法,希望对你们有用。

  c中get set的用法的用法如下:

  面向对象编程的一个规则是:使用户只需要指定对象能做什么,而不需要去指定或者了解对象是如何完成该的。

  属性是对象内部的数据,用户如果能够直接访问对象内部数据,显然就违反了上述规则。(这也有点类似Windows系统对内存的保护,可以通过API来操作,但不推荐直接访问内存,那样就可能把内存搞乱了。)

  通过get和set访问器来访问,就保持了这种规则,而且还提供了额外的功能,如对值进行检查,实现只读或只写属性等。

  总的来说就是可以通过set get 来对类的属性进行封装,面向对象的程序是不可以直接用类自己定义的属性的

  刚刚学C#的时候,很多人都不明白属性的访问器有什么用呢,我上网见了不少的评论,拉下来给大家看看

  一般面向对象编程语言都要求成员变量不能直接暴露给外部访问,如下:

  public class A

  {

  public int Age; ? //这是不好的,待会有程序员可能把-1赋给Age

  }

  为了防止乱赋值,C#设计了一个属性机制,要求把成员变量设为私有,在通过属性来控制成员变量的读写,如下:

  public class B

  {

  private int age; ?//私有成员变量

  public int Age ? ?//age的属性

  {

  get{ return age; } ?//读取器

  set{ ? ? ? ? ? ? ? ?//写入器

  if(value>0)

  age = value; ? //value是准备写入的值

  }

  }

  }

  这样Age就像保安一样,挡在age的前面。访问age的时候需要通过Age许可,如下:

  B b = new B();

  b.Age = -1; ?//这是不行的,-1被带入value,value<0,判断不成立

  b.Age = 10; ?//这是可行的 如果还有不懂的话可以留言,我尽量教会你,下面是我一个简单是例子//-------------------------------------------------------------------------------------using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace ConsoleApplication2{ ? ?public class Myclass{ ? ? private string id=""; ? ? private string name=""; ? ?public string ID ? { ? ? ? ? ? ?get ? ? ? ? ? ?{ ? ? ? ? ? ? ?return id; ? ? ? ? ? ? } ? ? ? ? ? ? set ? ? ? ? ? ? ?{ ? ? ? ? ? ? ? ?id =value; ? ? ? ? ? ? } ? ? ? } ? ? ?public string Name ? ? ? { ? ? ? ? ? get ? ? ? ? ? ?{ ? ? ? ? ? ? ?return name; ? ? ? ? ? ? } ? ? ? ? ? ? set ? ? ? ? ? ? ? ? { ? ? ? ? ? ? ? ?name =value; ? ? ? ? ? ? ?} ? ? ? ?} ? } ? ?class Program ? ?{ ? ? ? ?static void Main(string[] args) ? ? ? ?{ ? ? ? ? ? ? ?Myclass clazz = new Myclass (); ? ? ? ? ? ? ? ?clazz.ID ="我爱你阿"; ? ? ? ? ? ? ? ?clazz.Name="王素莹"; ? ? ? ? ? ? ?Console.WriteLine("{0}他是谁?{1}",clazz.ID,clazz.Name); ? ? ? ? ? ? ?Console.ReadLine(); ? ? ? ?} ? ? ? ? ? } ? ?}

网友评论

Copyright © 2019 All Rights Reserved

错不了学习网 版权所有

回到顶部