公共变量与属性的区别

在我们的程序中经常会出现以下代码。

    成员变量:

   

public string Name;

 

    类属性:

   

public class People

    {

       private string name;

       public string Name

       {

          set

          {

             name = value;

          }

          get

          {

             return name;

          }

       }

    }

 

像上面这样的代码到底两者有什么不一样呢?对其他对象来说,这两者都是同样的访问,同样的赋值。一个是变量,一个是属性。

 

    首先基于面向对象的原则来看。面向对象编程的目的是要做到抽象、封装;在类中,变量是对类本身而言的,我们把它叫做域。它可以为public、private等;属性是类的外部显示出来的特性。虽然域可以为public,但这样把域申明为public将不利于类的封装,因为外部使用者可以对类进行直接修改。

    所以我们就可以用到属性,我们只是公开了它们的属性,至于如何对其进行赋值(set)如何进行取值(get)都已经进行了封装(在set和get中我们可以做一些自己的处理),对于类外部是不可见的。

    C#中的属性更充分地体现了对象的封装性:不直接操作类的数据内容,而是通过访问器进行访问。借助于get和set对属性的值进行读写操作和执行语句过程。属性具有多种用法:它们可在允许更改前验证数据;它们可透明地公开某个类上的数据,该类的数据实际上是从其他源(例如数据库)检索到的;当数据被更改时,它们可采取行动,例如引发事件或更改其他字段的值。

 

总结归纳有以下几点区别:

    属性是对字段的封装。

    属性可以控制读写,变量不可以。

    属性可以进行赋值操作,变量不可以。

    经过实践发现,当我们对一个对象进行数据绑定时,属性是可以正常绑定的,变量就不行。所以,当我们需要将类中的一个值设为public时,应该尽量使用属性而不是变量。

转载于:https://www.cnblogs.com/wemzhugo/p/3345879.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值