C#中属性的定义

属性的定义

定义结构:

public int MyIntProp{
    get{
            //get code
        }
    set{
            //set code
        }
    }
  1. 定义属性需要名字类型
  2. 属性包含两个块:get块set块
  3. 访问属性和访问字段一样,当取得属性的值得时候,就会调用属性中的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方法的一个方法,而它与类中的字段的赋值和取值又是息息相关的。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值