0

虽然微软建议避免在代码中使用缩写,但为什么系统生成的事件处理程序代码包含以下行?

private void TextBox1_TextChanged(object sender, EventArgs e)

请注意,“e”是缩写。此规则是否不适用于事件处理程序?

4

2 回答 2

0

不,它不是匈牙利符号。它只是一个缩写名称(如上面的评论中所述),您最好阅读有关匈牙利符号的更多信息。

匈牙利符号是计算机编程中的标识符命名约定,其中变量或函数的名称表示其意图或种类。

例如:string strName="";
在这里你提到变量的类型,作为变量名的一部分。但是在现代,由于不同的原因,它没有用。

  • 您可以通过IDE轻松找到类型,因此无需在名称上提及
  • 很难改变变量类型,也需要改变它的名字。

还有很多。

于 2017-08-31T04:12:13.797 回答
0

您的问题在上面得到了很好的回答,但我会在匈牙利符号上投入 0.02 美元。

这里有一篇很棒的文章涉及匈牙利符号。它解决了对匈牙利符号的一些误解,特别是它应该是什么,而不是它通常被假设的。

@Hiran 的答案中的示例通常被认为是,Hiran 是非常正确的:在现代 IDE中添加str前缀是多余的。string strName

链接文章的主要内容来自本段:

在 Simonyi 的匈牙利符号版本中,每个变量都带有一个小写标签前缀,表示该变量包含的事物的种类。

例如,如果变量名是 rwCol,则 rw 是前缀。

我故意用 kind 这个词,因为 Simonyi 在他的论文中错误地使用了 type 这个词,而且几代程序员都误解了他的意思。

我知道微软关于使用匈牙利表示法的指导方针更多的是关于它已经变成了什么(用变量类型作为变量名的前缀)。

因此,在最初的意图中,“匈牙利表示法”可能是使用string pName(for 'productName') 而不是string name.

至于原始问题,匈牙利表示法中的相同声明可能更像:

private void TextBox1_TextChanged(object sender, EventArgs tcArgs)

鉴于这些EventArgs e在事件处理程序中,我不相信这种表示法在这种特定情况下特别有用。

于 2017-08-31T05:12:33.640 回答