设为首页收藏本站订阅更新

无忧脚本

 找回密码
 加入无忧

QQ登录

只需一步,快速开始

搜索
查看: 2355|回复: 10

【已解决】C#类中,属性、字段分别怎么解释?

[复制链接]
发表于 2005-8-19 13:50:19 | 显示全部楼层 |阅读模式
今天看了一下C#,偶然看到介绍类的时候提到属性,和字段,看着有点晕,好像没有在C++中见到过,所以过来请大家解释一下!
发表于 2005-8-19 14:42:25 | 显示全部楼层
哦,因为C#中的“属性”实际上是具有一定行为的特殊方法。
这种方法看上去像是字段(一个类里的变量),但当你向他赋值或者从他读取值得时候,它会进行一些操作。

其实 在HTML DOM中就有很多这样的例子,比如 obj.innerHTML ="<i>hello</i>";
绝对不可能只是赋了值给变量innerHTML那么简单,同时它还会导致屏幕上的重新绘制。

在 c++ 中由于没有这样的功能,所以一般都会有对应的 get set 函数让人显式调用。
比如 BSTR get_innerHTML() 和 set_innerHTML(BSTR str),实现相同的功能。
不知道明白没有?
发表于 2005-8-19 14:51:00 | 显示全部楼层
一个例子:
public string Name {
    get { return name; }
    set { name = Value; }
}
发表于 2005-8-19 14:54:13 | 显示全部楼层
字段是什么我还真没听说过,只晓得有属性,索引,代表,C#2.0有泛型等
发表于 2005-8-19 16:52:52 | 显示全部楼层
private int i;
这个 i 就被称作一个私有字段

public int age
{
        get {
                return i;
        }
        set {
                i = value;
        }
}
这个age就被称作属性。
不难看出,i 是私有的,外部无法访问,但可以通过age这个属性来访问它。
属性是一个方法,而不是一个字段,在编译之后,属性就不是这样的书写格式了。
 楼主| 发表于 2005-8-19 16:55:00 | 显示全部楼层
谢谢各位,明白了,
说明白了,属性字段都是类里面的变量,只不过属性比较特殊一点

不知道我的理解错了没有:-)
 楼主| 发表于 2005-8-19 16:59:13 | 显示全部楼层
这么说来,字段是一个变量,而属性是一个特殊的方法了。
发表于 2005-8-19 16:59:49 | 显示全部楼层
引用内容由 bqrm_521 发表于 2005-8-19 16:55
谢谢各位,明白了,
说明白了,属性字段都是类里面的变量,只不过属性比较特殊一点

不知道我的理解错了没有:-)


变量是存储在内存中的某种类型的数据,而属性不是,所以不要把属性认为是变量,应该算作方法,但它是很特殊的方法,因为访问这个方法时不需要括号。

字段 : Field
属性 : Property

两个翻译的意思而已。
 楼主| 发表于 2005-8-19 17:00:30 | 显示全部楼层
谢谢,明白了
 楼主| 发表于 2005-8-19 17:05:25 | 显示全部楼层
没有想到这么简单的问题,版主们都这么热心的回答,真有的激动啊
再说一下谢谢各位!!!
发表于 2005-8-23 09:46:04 | 显示全部楼层
说的好。顶。
您需要登录后才可以回帖 登录 | 加入无忧

本版积分规则

小黑屋|手机版|Archiver|无忧脚本 ( 苏ICP备05080427号 )|值班电话:027-62300445   

GMT+8, 2014-12-27 21:42 , Processed in 0.178517 second(s), 10 queries , Gzip On, Memcache On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表