温故知新(6)属性get、set

来源:互联网 发布:深圳外贸优化 编辑:程序博客网 时间:2024/06/14 00:24

属性get、set

1、属性有两个块,一个块用于获取属性的值,另一个块用于设置属性的值。这两个块也称为访问器,分别用get和set关键字来定义,可以用于控制对属性的访问级别。

2、这两个块也可以忽略其中一个,来创建只读或者只写属性。

3、通过set块来设置值之前做一些校验的工作。

4、通过属性可以访问字段

5、如果在get或者set前面加上private,表示这个块只能在类的内部调用。

class MyClass{    public string Name { get; set; }}
[注]上面的写法,编译器会自动创建字段来储存name。

完整的写法应该是:

class MyClass{    private string name;    public string Name    {        get { return name; }        set { name = value; }    }}
对应上面的写法区分get块和set块

get块

get块必须有一个属性的返回值,而这个值一般与私有字段相关联,来控制对这个字段的访问,此时get块可以直接返回该字段的值。

外部不能直接访问name这个字段,它是私有的,必须通过属性来访问字段。

set块

把一个属性值value赋值给字段name,一般我们会在赋值前做一些校验工作,规避不安全性。

private int num;public int number{    get { return num; }    set    {        if (num > 0 && num < 10)            num = value;        else            Console.WriteLine("不在范围内");//也可以通过throw()来抛出异常    }}

C#中的单例模式

class MyClass{    private static MyClass _instance;    public static MyClass GetInstance    {        get        {            if (_instance == null)            {                _instance = new MyClass();            }            return _instance;        }    }}

原创粉丝点击