Anders Liu的.NET空间
传播知识源于掌握知识,但又高于掌握知识。我要做一个掌握很多知识的传播知识的人。
博客园
首页
博问
闪存
新随笔
联系
订阅
管理
随笔-118 文章-2 评论-2355
C#语言中的属性语法还可以改进
个人的一点胡思乱想,希望能被有识之士看到。若能翻译成英文,提交给微软,那就更好玩了。
C#语言中的属性,把数据(域)和行为(方法)很好地结合到了一起,使得类的编写者可以像编写方法那样,对传入参数进行验证;而类的使用者,则可以向访问域那样访问属性。但更多的时候,我们看到的是这样的代码:
string
name;
public
string
Name
{
get
{
return
name; }
set
{ name
=
value; }
}
因此我想,如果能够为这种情况而进行一些语法上的优化器不是能更加“优雅”?比如,允许声明可以由get/set访问其所共享的变量:
public
string
Name
{
string
name;
get
{
return
name; }
set
{ name
=
value; }
}
甚至,连变量都可以不要,而是提供关键字store,由编译器定义一个匿名的变量来存放属性值:
public
string
Name
{
get
{
return
store
; }
set
{
sotre
=
value; }
}
再甚至,如果属性的代码里没有任何验证或计算代码,只是返回store中的值,或者把值放入store中,还可以使用空访问器:
public
sring Name
{
get
{}
//
空访问器,由编译器生成诸如return store;这样的代码
set
{}
//
空访问器,由编译器生成诸如store = value;这样的代码
}
public
float
P
{
get
{
return
a
/
b; }
//
非空访问器,编译器不生成代码
}
怎么样?是不是有那么一点意思?
绿色通道:
好文要顶
关注我
收藏该文
与我联系
posted @ 2006-07-31 10:48
Anders Liu
阅读(1779)
评论(11)
编辑
收藏
发表评论
2076882
回复
引用
#1楼
2006-07-31 11:59
FA[未注册用户]
如果你能搞出编译器,你怎么改都行!!!!
回复
引用
#2楼
2006-08-04 11:20
lonfone[未注册用户]
那直接用 PUBLIC 变量得了,何必用属性访问器.
回复
引用
查看
#3楼
[
楼主
]
2006-08-04 18:19
Anders Liu (lover_P)
@FA
我还真学过一阵编译原理,不过那玩意需要极大的耐性和大量的理论训练,我都没有,所以以失败告终。
回复
引用
查看
#4楼
[
楼主
]
2006-08-04 18:20
Anders Liu (lover_P)
@lonfone
当然不能用public变量了~
者要考虑扩展性,可能一开始需要空访问器,但后期可能会向其中添加代码。
回复
引用
#5楼
2006-08-29 11:02
老赵[未注册用户]
你的意思是不是在他的外面再包上一层外衣,使用起来更方便啊!!!!
回复
引用
#6楼
2007-11-28 18:33
menxin[未注册用户]
空访问器已经实现了
{get;set;}
回复
引用
查看
#7楼
2008-08-15 02:19
JimLiu
@menxin
实际上是编译器生成了m_xxx字段吧?
Property是个好东西,看着舒服,比getXXX()/setXXX()来的舒服
回复
引用
查看
#8楼
2008-08-15 02:19
JimLiu
public string Name
{
string name;
get { return name; }
set { name = value; }
}
这个挺好玩,也很不错
回复
引用
查看
#9楼
2011-04-21 10:59
风云
LZ很有前瞻性呀,很是佩服!
回复
引用
查看
#10楼
[
楼主
]
2011-04-21 15:01
Anders Liu
@
风云
多谢你的回复,差点把这篇文章忘了……
回复
引用
查看
#11楼
2011-04-21 15:04
风云
我也是经常忘记,呵呵...
刷新评论列表
刷新页面
返回页首
发表评论
昵称:
[登录]
[注册]
主页:
邮箱:
(仅博主可见)
验证码:
看不清,换一个
评论内容:
登录
注册
[使用Ctrl+Enter键快速提交评论]
0
463809
upc4i1KBP2g=
首页
博问
闪存
新闻
园子
招聘
知识库
最新IT新闻
:
·
《福布斯》:谷歌进军硬件产品 难撼动苹果地位
·
美国空军拟最多购买1.8万台iPad 2
·
分析称专利之争让谷歌苹果两败俱伤
·
Android平台发现新型手机病毒Rootsmart
·
HTC首款Android4.0手机大曝光
»
更多新闻...
最新知识库文章
:
·
高级编程语言的发展历程
·
如何学习一门新的编程语言?
·
学习不同编程语言的重要性
·
为什么我喜欢富于表达性的编程语言
·
计算机专业的女生为什么要学编程
»
更多知识库文章...
China-pub 2011秋季教材巡展
China-Pub 计算机绝版图书按需印刷服务
公告
昵称:
Anders Liu
园龄:
6年2个月
粉丝:
213
关注:
16
搜索
随笔分类
(35)
ASP.NET MVC(19)
(rss)
CLR / CLI(11)
(rss)
P宝日记
(rss)
书评(5)
(rss)
文章分类
(1)
ECMA-335-v5(1)
(rss)
文章档案
(1)
2006年4月 (1)
友情链接
【孟宪会之精彩世界】之.NET开发者园地
(rss)
涵舍愚人
积分与排名
积分 - 439884
排名 - 141
最新评论
推荐排行榜