软件开发|编程技术|编程代码|编程入门先学什么—程序设计语言

C#中属性的定义讲解

属性的定义

定义结构:

public int MyIntProp{    get{            //get code        }    set{            //set code        }    }

定义属性需要名字和类型。 属性包含两个块:get块和set块。 访问属性和访问字段一样,当取得属性的值得时候,就会调用属性中的get块,因此get块需要返回值,其返回值类型就是属性的类型;当我们去给属性设置值得时候,就会调用属性中的set块,以此可以在set块中通过value访问到我们所设置的值。

eg:

//跟访问字段的方式一样v1.MyIntProperty = 600; //对属性设置值,自动调用set块int temp = v1.MyIntProperty //对属性取值,自动调用get块

需要注意的是,set方法和get方法可以不同时存在。

但是如果没有get块,就不可以获得取值;如果没有set块,就不能进行设置值。

通过属性访问字段

一般而言,习惯于将字段设置为private,这样外界就不能修改字段的值。这是我们可以通过定义属性来设置字段和获取字段的值。

eg:

private int age;public int Age{ //习惯字段小写,属性大写    set{        if(value<0) return;   //通过set值进行一些校验的工作        age = value;        }    get{        return age;        }    }

设置属性的只读或者只写

只读

private string name;public string Name{    get{            return name;        }

只写

private string name;public string Name{    set{            name = value;        }

属性的访问修饰符

//如果在get或set块钱加上private,表示这个块只能在类内进行调用public float X{    private set { x = value;}      get { return x;}public float X{    set { x = value;}      private  get { return x;}  

自动实现的属性

public int Age{set;get;}    //编译器会自动提供字段来存储age-->等价于public int Age{    set{ age = value;}    get{ return age;}

总结一下,属性就相当于是一种带有set和get方法的一个方法,而它与类中的字段的赋值和取值又是息息相关的。