我不在 .Net 中使用匈牙利语 (str, int) 前缀,但我仍然发现它在 VBA 中很有用,因为在 VBA 中很难看到类型。
这很糟糕吗?不必要?也许我错过了一些东西。
我真的很感激任何反馈。我一直想知道一段时间。
谢谢大家。
我不在 .Net 中使用匈牙利语 (str, int) 前缀,但我仍然发现它在 VBA 中很有用,因为在 VBA 中很难看到类型。
这很糟糕吗?不必要?也许我错过了一些东西。
我真的很感激任何反馈。我一直想知道一段时间。
谢谢大家。
我会说这种匈牙利符号是几乎所有语言中万恶之源。有人说它对于极其动态的语言很方便。但是不,我认为在 99% 的情况下,在变量名上加上类型缩写前缀是多余的,只会导致丑陋的代码。
我建议你做一些比类型更高级的东西,这样你就可以看到事情的目的是什么。因此,不要称某事物为str
ing,而应称其为 aname
或addr
ess,而不要int
称其为 acount
或coord
inate 或 ...
(我更喜欢对前缀使用后缀,但这是风格和品味的问题。)
我总是在 VBA 中使用一个和两个字母前缀。我敢肯定我是唯一会承认这一点的人,但我认为需要有人成为逆势者。
在我编写的 1800 万行 VBA 代码中,我合作完成了大约 1000 行。如果没有其他人看到我的代码,那么我可以自由地使用我喜欢的约定。如果其他人将处理您的代码,您应该同意约定。
我喜欢它让我的变量名更短。我可以使用 FileNumber 和 FileName,或者我可以使用 lFile 和 sFile。我没有发现一个比另一个更具可读性。它还帮助我使用保留字作为变量。如果我想使用 Replace 作为变量名,我不能。但我可以使用 sReplace 或 lReplace。
如果您公司的样式设置为使用匈牙利符号,那么使用它就没有问题 - 政策就是政策。有很多工具可以帮助强制执行编码命名约定(例如C# 的 Stylecop),因此如果允许,您可以继续前进。
基本上有标准是一个好主意——但这些标准是什么取决于你工作的公司。如果你有一定的权威,你可以尝试强加微软目前正在推广的标准——但如果你有很多遗留代码,这些代码将涉及大量昂贵的重构,而几乎没有什么物质利益。
我建议您在新项目中放弃匈牙利符号(可能通过使用代码分析工具),但对遗留代码要务实。