我已经查阅了一些msdn文章,这些文章涉及c#编码约定和命名指南(C#编码约定 和 命名指南) 以及ASA 类似的问题 从几个月前的堆栈溢出。
我不确定如何处理两个同时在范围内的变量,这些变量在不同类型中保存[概念上]相同的数据。
有助于说明该问题的示例将是最初作为字符串保持的标识符,然后被转换/解析为整数。
我想出了3个可能的行动方案,我确信我错过了合理的选择。
COA#1:
int iRecordId;
string sRecordId;
其中一个或两个变量前缀为类型缩写。这违反了MS编码指南,声明不要使用匈牙利类型表示法为参数名称添加前缀。
COA#2:
int recordId;
string recordIdString;
其中一个或两个变量明确说明名称中的类型。这看起来很笨拙,虽然它不使用匈牙利表示法,但它似乎违反了之前COA的精神。
COA#3:
int recordIdForDatabase;
string recordIdFromUrl;
每个变量进一步限定数据来自或将来的位置。
提案
我的想法是,我最终想要区分两个仅按类型不同的变量,因此虽然有明确说明不使用类型信息为变量添加前缀的指南,但我倾向于使用匈牙利语前缀。由于它与代码的其余部分中的命名约定形成鲜明对比,因此它似乎会突出显示情有可原的情况。这是一种合理的方法吗?
欢迎提出问题,评论和愤怒的呼声。