CNET中国旗舰网站
ZDNet China
|
CNET科技资讯网
|
政府采购
|
行业网站联盟
ZDNet China 至顶网是中国最大的企业级IT资源门户
首页
网络安全
存储
服务器
软件
桌面产品
开发
企业管理
白皮书
中小企业
新闻
下载
社区
企业网
无线网
过滤防护
安全管理
网络存储
磁带库/VTL
数据保护
光存储
X86服务器
虚拟化
小型机
操作系统
数据库
中间件
协作办公
手机
笔记本
数码相机
C/S开发
web开发
移动开发
web软件
应用软件
博客
论坛
搜索
搜索
高级搜索
用户登录
用户名:
密码:
登录
新用户注册
社区首页
未证实消息
桌面产品
软件
开发
网络与安全
服务器
存储
下载
苹果爱好者
中小企业
活动专区
病毒/木马
新知天下
CWEEK专属社区
悬赏问答
游客:
注册
|
登录
|
会员
|
搜索
|
论坛设施
|
帮助
ZDNetChina中文社区
»
开发语言
»
.Net技术
» Net(C#)开发漫谈:关于变量的命名和属性
C++开发常用工具荟萃
深入理解C语言指针的奥秘
Vista系统解惑要考虑的10件事
Asp.Net 学习资源列表
J2ME与Web Service的罗曼史
中间件技术的思想、概念、分类
.Net开发人员十种必备工具
用JSP 2.0开发Web应用程序
草根挑战豪门PHPer要为自己正名
高手写的php+flash多人视频聊天室
PHP程序员的优化调试技术和技巧
PHP程序员的优化调试技术和技巧
‹‹ 上一主题
|
下一主题 ››
投票
交易
悬赏
活动
打印
|
推荐
|
订阅
|
收藏
标题:
[转贴]
Net(C#)开发漫谈:关于变量的命名和属性
大黄蜂
支柱会员
UID 319163
精华
5
积分 17513
帖子 1256
威望 8124
ZD币 1987 元
阅读权限 210
注册 2008-4-15
状态 离线
楼主
发表于 2008-9-24 13:10
资料
个人空间
短消息
加为好友
开发者在线
Net(C#)开发漫谈:关于变量的命名和属性
static readonly与const的变量,作用是一样的,无论访问修饰符是不是public,还是其它(private、protected、internal),变量名称一般为大写,中间以下划线。
public static readonly int MAX_HEIGHT;
public const int MIN_HEIGHT = 10;
有些程序员对大写不敏感,上例中,MAX_HEIGHT用Max_Height代替也未尝不可,甚至MaxHeight也可以。在.Net类库中,int.MaxValue与int.MinValue便是这样定义的。
const常量更确切的说是编译时常量,因为它在运行时是不存在的,在编译中所有变量引用将被实际值替掉。而static readonly则不然,它在运行时也是存在的。从原理上讲,论效率const优于static readonly。但是在一个比较在的项目中,在dll局部升级时,如果改变了某个const变量的值,而未升级的dll如果也有这个const变量的话,显而易见这时候问题将是产生。如果因此而升级全部dll,反而不值。所以在大型、多变应用中,建议使用static readonly代替const。其微乎其微的效率的减损对比升级布置可能出现的问题还是可以接受的。
除了以上两种静态只读和常量变量之外,其它变量命名均以下划线开始,访问修改符为private(不建议命名为internal、protected,更不建议命名为public):
private static int _maxHeight;
private int _minHeight; 如果其命名不前置下划线,易与参数变量混淆。
对于下面这种定义:
private int _minHeight = default(int);
public int MinHeight
{
set{
_minHeight = value;
}
get{
return _minHeight;
}
}
初学者可能觉得有点画蛇添足,不如直接命名为:
public int MinHeight; 这样岂不简单,干吗还要用getter和setter封装起来,额外的函数调用也使效率有损。
有时候在开发项目时,开始时我们要画的可能只是一条蛇,但是项目后期需求变了,改画一条龙了。所以在项目初期画蛇的时候添上一对足还是很有远见的。
getter与setter(属性存取器)可以像方法一样封装逻辑并且像变量一样使用,建议所有非静态只读和常量,定义为private,然后给其添加相应属性存取器,用于赋值与读取。在其它方法体内(包涵类外与类内),不建议直接读写变量。即使它目前可以被直接读写,我们也要通过调用属性存取器也调用。这一点有点麻烦,但很重要,很高老手有时也会犯错误。如下所示:
private int _minHeight = int.MinValue;
public int MinHeight//或者是protected、internal,甚至是private
{
set{
_minHeight = value;
//即使这里目前没有其它处理逻辑
}
get{
return _minHeight;
}
}
public void Method1(int minHeight)
{
this.MinHeight = minHeight;//在这里不要使用this._minHeight直接读写
//
}
即使变量的访问是受保护的或者或者是私有的,也要使用属性存取器。
原则是:对于变量的读取,要用属性存取器封装,无论其访问修饰符如何,即使其属性存取器内除了存取目前没有任何其它逻辑。
蔡依林
灵玉会员
UID 320196
精华
1
积分 7791
帖子 970
威望 3544
ZD币 1112 元
阅读权限 180
注册 2008-4-18
状态 离线
沙发
发表于 2008-9-25 09:35
资料
个人空间
短消息
加为好友
了解
热点频道推荐:
C/S开发
|
数据库
|
WEB开发
|
嵌入式
|
项目管理
|
测试测试
白金会员
UID 328553
精华 0
积分 4889
帖子 700
威望 2204
ZD币 803 元
阅读权限 150
注册 2008-5-21
状态 离线
板凳
发表于 2008-9-26 14:50
资料
个人空间
短消息
加为好友
有些程序员对大写不敏感,上例中,MAX_HEIGHT用Max_Height代替也未尝不可,甚至MaxHeight也可以。在.Net类库中,int.MaxValue与int.MinValue便是这样定义的。
本贴来自ZDNetChina中文社区 http://bbs.zdnet.com.cn ,本贴地址:http://bbs.zdnet.com.cn/viewthread.php?tid=718693
热点频道推荐:
C/S开发
|
数据库
|
WEB开发
|
嵌入式
|
项目管理
|
投票
交易
悬赏
活动
控制面板首页
编辑个人资料
积分交易
公众用户组
好友列表
个人空间管理
开通个人空间
基本概况
流量统计
客户软件
发帖量记录
论坛排行
主题排行
发帖排行
积分排行
在线时间
管理团队
管理统计
问卷调查
当前时区 GMT+8, 现在时间是 2009-7-4 16:20
Powered by Discuz! 5.5.0 © 2001-2007 Comsenz Inc.
Processed in 0.063013 second(s), 4/3 queries
TOP
清除 Cookies
-
联系我们
-
ZDNetChina中文社区
-
无图版