博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
编写高质量代码改善C#程序的157个建议——建议134:有条件地使用前缀
阅读量:5210 次
发布时间:2019-06-14

本文共 1312 字,大约阅读时间需要 4 分钟。

建议134:有条件地使用前缀

 在.NET的设计规范中,不建议使用前缀。但是,即便是微软自己依然广泛的使用这前缀。

最典型的前缀是m_,这种命名一方面是考虑到历史沿革中的习惯问题,另一方面也许我们确实有必要这么做。

在一个不是很庞大的类型中,我们确实不应该使用任何前缀。各类设计规范也总建议我们保持一个娇小的类型,但是往往事与愿违,大类型常常存在。以Task为例,它有2000多行代码。在这种类型中,如果不使用前缀,我们很难区分一个类型是实例变量还是静态变量,或者是一个const变量。

最常见的做法是:

前缀m_,表示这是一个实例变量。

前置s_,表示这是一个静态变量。

注意,有时候,如果类型只有实例变量或者只有静态变量,我们也直接使用前缀,以区别该变量不是一个局部变量。

而const变量则常常使用名词加下划线的表示方法,如:

internal const int TASK_STATE_CANCELED=0x400000;

记住,前缀仅限于此,匈牙利命名法中的其他规则(如用类型名做前缀)是绝对要禁止的。

一个正确使用前缀的示例如下:

class SampleClass    {        private static int s_price;        private int m_price;        private const int BASED_PRICE = 1000;        public static void SetStaticField(int price)        {            s_price = price;        }        public void SetClassField(int price)        {            m_price = price;        }    }    class SampleClass2    {        private int _price;        public void SetPrice(int price)        {            _price = price;        }    }

 

 在这个例子中,我们知道,即使类型本身不是很长,但是存在方法参数和类型实例变量重名的情况下,为实例变量或者静态变量使用前缀也是必要的。

一个滥用前缀的实例如下:

class SampleClass    {        private int int_price;        public void SetPrice(int price)        {            int_price = price;        }    }

 

 在这个例子中,开发者尝试为price指定一个前缀int,试图通过命名指出变量是int类型。但是,对于一门强类型语言来说,这是没有必要的。

 

 

 

转自:《编写高质量代码改善C#程序的157个建议》陆敏技

转载于:https://www.cnblogs.com/jesselzj/p/4752652.html

你可能感兴趣的文章
UINavigationController的简单使用
查看>>
Python命名规范
查看>>
50款漂亮的国外婚礼邀请函设计(上篇)
查看>>
MD5加密简单算法
查看>>
安装Qcreator2.5 + Qt4.8.2 + MinGW_gcc_4.4 (win7环境)
查看>>
代码检查
查看>>
滚动条
查看>>
程序员的自我修养九Windows下的动态链接
查看>>
记一次修改数据库引擎的方法
查看>>
开发工具 idea 激活方法
查看>>
BZOJ 4052: [Cerc2013]Magical GCD
查看>>
libevent和libcurl的一些学习
查看>>
iOS的横屏(Landscape)与竖屏(Portrait)InterfaceOrientation
查看>>
JS中 window的用法
查看>>
Codeforces Round #361 (Div. 2)
查看>>
oauth2学习
查看>>
Python time & datetime & string 相互转换
查看>>
细说WebSocket - Node篇
查看>>
【pwnable.kr】 flag
查看>>
1014 装箱问题——http://codevs.cn/problem/1014/
查看>>