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