.NET中公共变量与属性的区别
来源:互联网 发布:王治郅在nba数据 编辑:程序博客网 时间:2024/06/05 14:36
转自:http://hi.baidu.com/mountplorer/item/855fdc6f60ce930da0cf0f74
在我们的程序中经常会出现以下的代码:
如:
成员变量
public string Name;
或者用属性
private string name
public string Name()
{
get { return name; }
set { name = value; }
}
当然,如果属性中get{} 和 set{}的方法不是这么简单或两个不同时出现的话,我们很容易区分出两者的区别。
但就像上面这样的代码到底两者有什么不一样呢?对其它对象来说,这两者都是同样的访问,同样的赋值。只不过一个是变量,一个是属性而已。经过本人一段时间的理解,大概总结如下,不对之处还望指出。
首先基于面向对象的原则来谈一下这个问题。
面向对象的编程的目的地要做到 抽象、封装;在类中,变量是正对类本身而言,我们把它们叫做域。它可以为public ,private等;属性是类的外部显示出来的特性。虽然域可以为public,但这样把域申明为public将不利于类的封装,因为外部使用者可以对类进行直接修改。所以我们就可以用到属性,我们只是公开它们的属性,至于如何对其进行赋值(set)如何进行取值(get)都已经进行了封装,对于类外部是不可见的。对于外部使用者来说只能够使用它,不能控制它,如何控制操作是由类自身决定的。这是一个方法原则上的区别,像上面的代码虽然用法上是一样的,但对于面向对象的思想来说是不一样的。
变量和属性都表示可以访问的值。但在存储和实现方面有所不同。
变量
“变量”直接对应于内存位置。可以使用单个声明语句定义变量。变量可以是“局部变量”,在过程中定义且仅可用于该过程;它也可以是“成员变量”,在模块、类或结构中定义,但不在任何过程中定义。成员变量又称“字段”。
属性
“属性”是在模块、类或结构中定义的数据元素。使用 Property 和 End Property 语句之间的代码块定义属性。此代码块包含一个 Get 过程或一个 Set 过程,或两者都包含。这两个过程称为“属性过程”或“属性访问器”。除了检索或存储属性的值外,它们还可以执行自定义操作,如更新访问计数器。
- .NET中公共变量与属性的区别
- .NET中公共变量与属性的区别(get/set)
- .NET中公共变量与属性的区别
- .NET中公共变量与属性的区别(get/set)[转]
- 公共变量和属性的区别
- 公共变量和属性的区别
- OC中类的属性与成员变量的区别
- 【转】iOS中属性与成员变量的区别
- IOS中属性与成员变量的区别
- iOS中属性与成员变量的区别
- iOS中属性与成员变量的区别
- iOS中属性与成员变量的区别
- 【转】iOS中属性与成员变量的区别
- iOS中属性与成员变量的区别
- iOS中属性(@proerty)与成员变量的区别
- iOS中属性与成员变量的区别
- iOS中属性与成员变量的区别
- iOS中属性与成员变量的区别
- asp.net mvc源码分析-路由篇 如何找到 IHttpHandler
- 利用Cache功能实现站点单点登录 防重复登录
- C语言位运算--经典
- input设置为disabled提交后获取不到该值的解决方法
- oracle中的exists 和not exists 用法
- .NET中公共变量与属性的区别
- Android getevent/senevent
- 为什么要注册域名? 什么是HTML?
- 理解 Memcache 的服务器端与客户端
- Android EditText提醒用户输入错误方法
- UINavigationController点击事件控制隐藏与显示(UITabBarController也同样适用)
- Android的Activity屏幕切换动画(一)-左右滑动切换
- 密码框显示提示信息
- 天天动听 悬浮歌词(迷你歌词)效果解读 .