有志者、事竟成,破釜沉舟,百百二秦关终属楚;苦心人、天不负,卧薪尝胆,三千越甲可吞吴。

拂晓犬吠

学习中遇到困难是很正常的事情,不要苦恼,不要气馁,恰恰相反,应该兴奋,因为又学到知识了,需要不断提高自己应对问题和解决问题的能力和信心。

C#学习-属性是对字段的扩展

  属性是对字段的扩展。

  根据面向对象语言的封装思想,字段最好设为private,因为这样可以防止客户端直接对字段进行篡改,从而保证了内部成员的完整性。

  于是为了访问类中的私有字段,C#提供了属性这种机制,用来对字段进行灵活的控制和访问。以下是

  public class person

  {

    //私有字段定义

    private string name;

    //公有属性定义

    public string Name

    {

      //get访问器

      get

      {

        return name;

      }

 

      //set访问器

      set

      {

        name = value;

      }

    }//Name end

  }//class end

  属性定义主要由于get访问器和set访问器组成。

  get访问器负责对字段值进行读取;

  set访问器负责对字段进行赋值;

  get访问器和set访问器可以理解为两个方法,一个是用来返回字段,一个用来把用户传入的值赋给字段。

  C#为了使字段的访问过程更加简单,提出了属性的概念,通过操作属性来访问字段,避免了使用调用方法。

  属性除了能直接访问私有字段外,还可以根据需要加入更多的逻辑控制代码。

  例如,人的年龄一般在0-120岁之间,当代码试图将这个范围之外的数值赋给年龄字段时,则可在属性中添加抛出异常的代码对错误进行处理。以下是

  Pulic class Person  

  {

         Private int age;

      

         Public int Age

         {

                //get访问器

                Get

                {

                       Return age;

      }

 

      Set

      {

             //在Set访问器中添加更多的逻辑代码

             If(value<0||value>120)

             {

                  throw(new ArgumentOutOfRangeException(“AgeIntProPery”,value,”年龄必须在0-120之间”));

        }

        age=value;

      }

    }

  }

  

posted @ 2019-03-15 17:28  ID拂晓犬吠  阅读(867)  评论(0编辑  收藏  举报