命名为替代/避免UI匈牙利命名法的建议?
-
06-09-2019 - |
题
我已经使用匈牙利命名法停止,除了随处可见的UI,经常在那里我有一个用户名的标签,用户名文本框中,输入用户名本地变量,必填字段验证,用户名属性和方法的参数等通常都在相同的上下文
电流:lblUser,txtUser,rfvUser,_user,用户,用户
如果我做明显的,编号userLabel,UserTextBox,UserRequiredFieldValidator,好像我只是substiuting长后缀较短的前缀。
和_用于指示字段,得到由标记的FxCop,但没有前缀,这将与经批准的用户/用户约定比赛。
任何建议?
解决方案
我仍然通常使用UI对象匈牙利表示法,因为我觉得它使我的代码更具有可读性。
我会使用之类的东西m_firstNameTextBox或m_countryComboBox用于UI控件,然后m_firstName和m_country从这些控件的字符串值。
目前,你应该使用任何你喜欢的一天结束。毯子规则,以避免匈牙利命名法是一样糟糕,规定religous使用它的人。这是obivous物像intCounter,则strName是矫枉过正,但在其他情况下,它确实是很有意义的指示变量名,在我看来UI控件恰好是的情况下,它有一定道理一类的类型。
其他提示
有什么错匈牙利命名法,只要它是用来使代码更易读。如果你认为它无助于这一点,那么不使用它。
嗯,请不要同时使用 '用户强>' 和 '用户强>'。 这是难以阅读,使用,维护和端口。如果两个不同的东西具有两种不同的含义,那么匈牙利命名法比通过翻转大写/小写字符之间编码的信息片段是更好的选择。
我不知道是谁发明了编程语言区分大小写,但他确实比任何人都可以在当时已经想到更多的伤害。我讨厌收到编译器错误,因为我输入 ' ID ' 而不是 '编号' 或 ' U盘U盘' 时,它应该已经“<强>软胶U盘强>”。
我更喜欢匈牙利即使它会导致很长的名字在UI(因为问题,你在问题中提到)。我唯一的建议是要在整个团队一致。
使用全部小写和下划线,案件问题就会消失。 SomeIdiotSomewhereDecidedThisWasAGoodWayToDoThingsAndIfIFindHimIWillKillHim。