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

无忧脚本

 找回密码
 加入无忧

QQ登录

只需一步,快速开始

查看: 2251|回复: 10

【已解决】C#类中,属性、字段分别怎么解释? [复制链接]

Rank: 4

升级  19.4%

注册时间
2005-3-29
在线时间
82 小时
威望
343
金钱
0
阅读权限
50
积分
597
日志
0
帖子
344
分享
0
精华
0
UID
26208
发表于 2005-8-19 13:50:19 |显示全部楼层 |串个门|加好友|打招呼|发消息 |
查看详细资料
一键分享 一键分享
今天看了一下C#,偶然看到介绍类的时候提到属性,和字段,看着有点晕,好像没有在C++中见到过,所以过来请大家解释一下!
技术交流:[url=http://www.relaxlife.net]http://www.relaxlife.net[/url]

霸王龙

灵长目-人科

Rank: 6Rank: 6

升级  85.3%

注册时间
2003-2-7
在线时间
11 小时
威望
1834
金钱
0
阅读权限
70
积分
2706
日志
0
帖子
1681
分享
0
精华
2
UID
114
发表于 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),实现相同的功能。
不知道明白没有?
[url=http://www.spreadfirefox.com/?q=affiliates&id=23488&t=70] [img]http://sfx-images.mozilla.org/affiliates/Buttons/88x31/get.gif[/img] [/url] [url=http://www.melop.net]欢迎到我的Blog[/url]

使用道具 举报

Rank: 6Rank: 6

升级  24.6%

注册时间
2004-9-21
在线时间
20 小时
威望
247
金钱
0
阅读权限
70
积分
1492
日志
0
帖子
237
分享
0
精华
0
UID
17273
发表于 2005-8-19 14:51:00 |显示全部楼层 |串个门|加好友|打招呼|发消息 |
查看详细资料
一个例子:
public string Name {
    get { return name; }
    set { name = Value; }
}

使用道具 举报

无忧元老

东方

Rank: 8Rank: 8

升级  0%

注册时间
2004-5-10
在线时间
72 小时
威望
2242
金钱
19
阅读权限
90
积分
13470
日志
0
帖子
2167
分享
0
精华
0
UID
11310
发表于 2005-8-19 14:54:13 |显示全部楼层 |串个门|加好友|打招呼|发消息 |
查看详细资料
字段是什么我还真没听说过,只晓得有属性,索引,代表,C#2.0有泛型等
Unalloyed stabilization is unceasingly changingOnly use English software and data......

使用道具 举报

版主

Worm's Gaze

Rank: 7Rank: 7Rank: 7

注册时间
2003-6-15
在线时间
20 小时
威望
1271
金钱
0
阅读权限
100
积分
1924
日志
0
帖子
1245
分享
0
精华
1
UID
3653
发表于 2005-8-19 16:52:52 |显示全部楼层 |串个门|加好友|打招呼|发消息 |
查看详细资料
private int i;
这个 i 就被称作一个私有字段

public int age
{
        get {
                return i;
        }
        set {
                i = value;
        }
}
这个age就被称作属性。
不难看出,i 是私有的,外部无法访问,但可以通过age这个属性来访问它。
属性是一个方法,而不是一个字段,在编译之后,属性就不是这样的书写格式了。
欢迎访问我的dotNET论坛: [url]http://www.cnvery.net/[/url],欢迎[url=http://www.cnvery.net/cvb/topic.aspx?topicid=4]下载使用[/url]。

使用道具 举报

Rank: 4

升级  19.4%

注册时间
2005-3-29
在线时间
82 小时
威望
343
金钱
0
阅读权限
50
积分
597
日志
0
帖子
344
分享
0
精华
0
UID
26208
发表于 2005-8-19 16:55:00 |显示全部楼层 |串个门|加好友|打招呼|发消息 |
查看详细资料
谢谢各位,明白了,
说明白了,属性字段都是类里面的变量,只不过属性比较特殊一点

不知道我的理解错了没有:-)
技术交流:[url=http://www.relaxlife.net]http://www.relaxlife.net[/url]

使用道具 举报

Rank: 4

升级  19.4%

注册时间
2005-3-29
在线时间
82 小时
威望
343
金钱
0
阅读权限
50
积分
597
日志
0
帖子
344
分享
0
精华
0
UID
26208
发表于 2005-8-19 16:59:13 |显示全部楼层 |串个门|加好友|打招呼|发消息 |
查看详细资料
这么说来,字段是一个变量,而属性是一个特殊的方法了。
技术交流:[url=http://www.relaxlife.net]http://www.relaxlife.net[/url]

使用道具 举报

版主

Worm's Gaze

Rank: 7Rank: 7Rank: 7

注册时间
2003-6-15
在线时间
20 小时
威望
1271
金钱
0
阅读权限
100
积分
1924
日志
0
帖子
1245
分享
0
精华
1
UID
3653
发表于 2005-8-19 16:59:49 |显示全部楼层 |串个门|加好友|打招呼|发消息 |
查看详细资料
引用内容由 bqrm_521 发表于 2005-8-19 16:55
谢谢各位,明白了,
说明白了,属性字段都是类里面的变量,只不过属性比较特殊一点

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


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

字段 : Field
属性 : Property

两个翻译的意思而已。
欢迎访问我的dotNET论坛: [url]http://www.cnvery.net/[/url],欢迎[url=http://www.cnvery.net/cvb/topic.aspx?topicid=4]下载使用[/url]。

使用道具 举报

Rank: 4

升级  19.4%

注册时间
2005-3-29
在线时间
82 小时
威望
343
金钱
0
阅读权限
50
积分
597
日志
0
帖子
344
分享
0
精华
0
UID
26208
发表于 2005-8-19 17:00:30 |显示全部楼层 |串个门|加好友|打招呼|发消息 |
查看详细资料
谢谢,明白了
技术交流:[url=http://www.relaxlife.net]http://www.relaxlife.net[/url]

使用道具 举报

Rank: 4

升级  19.4%

注册时间
2005-3-29
在线时间
82 小时
威望
343
金钱
0
阅读权限
50
积分
597
日志
0
帖子
344
分享
0
精华
0
UID
26208
发表于 2005-8-19 17:05:25 |显示全部楼层 |串个门|加好友|打招呼|发消息 |
查看详细资料
没有想到这么简单的问题,版主们都这么热心的回答,真有的激动啊
再说一下谢谢各位!!!
技术交流:[url=http://www.relaxlife.net]http://www.relaxlife.net[/url]

使用道具 举报

Rank: 4

升级  92.8%

注册时间
2004-6-28
在线时间
83 小时
威望
622
金钱
0
阅读权限
50
积分
964
日志
0
帖子
518
分享
0
精华
0
UID
13575
发表于 2005-8-23 09:46:04 |显示全部楼层 |串个门|加好友|打招呼|发消息 |
查看详细资料 QQ
说的好。顶。
丽德直销软件http://www.foicp.com

演示版:http://124.254.29.194

使用道具 举报

您需要登录后才可以回帖 登录 | 加入无忧

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

GMT+8, 2014-4-24 11:15 , Processed in 0.055654 second(s), 13 queries , Gzip On, Memcache On.

Powered by Discuz! X2

© 1999-2011 无忧脚本

回顶部