Anders Liu的.NET空间
传播知识源于掌握知识,但又高于掌握知识。我要做一个掌握很多知识的传播知识的人。
博客园
社区
首页
新随笔
联系
管理
订阅
随笔- 95 文章- 2 评论- 1459
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
阅读(1729)
评论(8)
编辑
收藏
网摘
发表评论
1287262
回复
引用
#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; }
}
这个挺好玩,也很不错
刷新评论列表
刷新页面
返回页首
发表评论
昵称:
[登录]
[注册]
主页:
邮箱:
(仅博主可见)
验证码:
看不清,换一个
评论内容:
登录
注册
[使用Ctrl+Enter键快速提交评论]
0
463809
链接:
切换模板
导航:
网站首页
社区
新闻
博问
闪存
网摘
招聘
找找看
Google搜索
China-pub 计算机图书网上专卖店!6.5万品种 2-8折!
China-Pub 计算机绝版图书按需印刷服务
相关文章:
最新IT新闻:
Google Voice 上手
Google号召社区力量为互联网加速
Twitter无处不在 魔兽世界Twitter发送器插件发布
Firefox 3.5匆忙推出漏洞多 Mozilla本月将更新
预测:Twitter最可能收购的十家公司
相关链接:
公告
我的最新闪存
AL 2.0即将诞生
搜索
我管理的小组
Asp.Net MVC
正则表达式
博客园宝宝乐园
我参加的小组
ASP.NET
LINQ
写书译书小组
创业交流
.NET 3.x
.Net+MySQL
CLR基础研究小组
博客园出书小组
我参与的团队
北京.NET俱乐部(0/0)
Windows Mobile 应用开发(0/0)
MVP(微软最有价值专家)团队(0/0)
软件项目管理团队(0/0)
CLR基础研究团队(0/0)
Windows Embedded开发(0/0)
CLI核心探索团队(0/0)
博客园精华集出版(0/0)
正则表达式团队(0/0)
ASP.NET MVC团队(0/0)
IT猎头在线(0/0)
随笔分类
ASP.NET MVC(19)
(rss)
CLR / CLI(9)
(rss)
P宝日记
(rss)
友情链接
【孟宪会之精彩世界】之.NET开发者园地
(rss)
涵舍愚人
积分与排名
积分 - 282132
排名 - 155