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;

      }

    }

  }

  

原文地址:https://www.cnblogs.com/158-186/p/10538418.html