虽然微软建议避免在代码中使用缩写,但为什么系统生成的事件处理程序代码包含以下行?
private void TextBox1_TextChanged(object sender, EventArgs e)
请注意,“e”是缩写。此规则不适用于事件处理程序吗?
答案 0 :(得分:0)
不,它不是匈牙利的表示法。它只是一个缩写名称(如上面的评论中所述) 你最好阅读更多有关匈牙利符号的内容。
匈牙利表示法是计算机中的标识符命名约定 编程,其中变量或函数的名称表示它 意图或善意。
例如:string strName="";
在这里你提到变量的类型,作为变量名称的一部分。但在现代,由于不同的原因,它无用。
还有更多。
答案 1 :(得分:0)
你的问题在上面已经得到了很好的解答,但是我会把我的0.02美元用于匈牙利表示法。
有一篇很棒的文章涉及匈牙利符号Here。它解决了一些关于匈牙利符号的误解,特别是应该是什么,而不是通常认为的那样。
@Hiran的答案中的例子是人们常常认为的,而且Hiran非常正确:在str
上放置string strName
前缀对于现代IDE是多余的。
链接文章的主要内容来自本段:
在Simonyi的匈牙利表示法版本中,每个变量都以小写标签作为前缀,表示变量所包含的内容。
例如,如果变量名称是rwCol,则rw是前缀。
我在那里故意使用“善意”这个词,因为西蒙尼错误地在他的论文中使用了这个词,而且几代程序员误解了他的意思。
我理解微软使用匈牙利表示法不的指南更多地是关于它的变化(用变量类型作为变量名前缀)。
因此,在原始意图中,“匈牙利表示法”可能是使用string pName
(代表'productName')而不是string name
。
关于原始问题,匈牙利表示法中的相同声明可能更像是:
private void TextBox1_TextChanged(object sender, EventArgs tcArgs)
鉴于这些EventArgs e
位于事件处理程序中,我不相信这种符号在此特定情况下特别有用。