C#中类的属性

 

C#的class中大量使用属性,如
int speed;
int Speed
{
get{return speed;}
set{speed=value;}
}
本文将探讨以下几个问题
1 为什么要使用属性
2 使用属性带来的好处

关于为什么要使用属性:用于替代原C++或者其它编程语言中的存取器和变异器。
一直以来很多编程语言都是用存取器来实现对私有变量操控,比如SetSpeed()
及GetSpeed()这是两种方法,以前C++的写法是:
int speed;
int MaxSpeed=100;
bool SetSpeed(int s)
{
if(s<=MaxSpeed)
{
   speed=s;
   return ture;
}
else
   return false;
}
int GetSpeed()
{
if(speed>MaxSpeed)
    return MaxSpeed;
else
    return speed;
}
其实存取器的一个主要目的就是封装好,并做数据效验,而在C#中则可以直接通过
属性来实现同样的功能
int speed;
int MaxSpeed=100;
int Speed
{
set
{
   if(s<=MaxSpeed)
   {
      speed=s;
   }
}

get
{
   if(speed>MaxSpeed)
    {   return MaxSpeed;
   else
      return speed;
   }
}
}
可以看出其实C#中的属性也具备存取器的同样功能,而它编译成MSIL代码后也是一个方法;

使用属性带来的好处
1 为访问对象的内的实例变量及访问另一个对象中的实例变量提供了一致的语法
2 程序员可以节省检查一个实例变量是否为公有或私有,是否存在对此实例变量的存取器方法
3 每个需要被访问的实例变量通常会存在一个存取器,也就是要有Set及Get的方法,而实例的变量只需要一个属性。

另外当调用一个简单的get或set语句块时,编译器会执行特殊的优化,也就是内联(inline)
比如:
car.distance/Speed---->编译器会将此句转换成:car.distance/speed

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值