Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
User interface 是否使用与私有变量相同的约定命名窗体上的控件?_User Interface_Oop_Coding Style - Fatal编程技术网

User interface 是否使用与私有变量相同的约定命名窗体上的控件?

User interface 是否使用与私有变量相同的约定命名窗体上的控件?,user-interface,oop,coding-style,User Interface,Oop,Coding Style,由于某种原因,我从来没有见过这样做。有没有理由不这样做?例如,我喜欢私有变量,至少在Windows窗体中,控件默认为私有成员变量,但我不记得曾经见过它们以这种方式命名。如果我在成员函数中创建/存储局部变量中的控制对象,则在视觉上进行区分尤其有用。我没有,但我欣赏您的逻辑。我想大多数人不这样做的原因是下划线在设计时在属性窗口中看起来有点难看。它还将占用额外的水平空间字符,这在这样的停靠窗口中非常重要。对于某些人来说,这可能是违反直觉的,但我们对UI元素使用了可怕的匈牙利符号 逻辑很简单:对于任何给

由于某种原因,我从来没有见过这样做。有没有理由不这样做?例如,我喜欢私有变量,至少在Windows窗体中,控件默认为私有成员变量,但我不记得曾经见过它们以这种方式命名。如果我在成员函数中创建/存储局部变量中的控制对象,则在视觉上进行区分尤其有用。

我没有,但我欣赏您的逻辑。我想大多数人不这样做的原因是下划线在设计时在属性窗口中看起来有点难看。它还将占用额外的水平空间字符,这在这样的停靠窗口中非常重要。

对于某些人来说,这可能是违反直觉的,但我们对UI元素使用了可怕的匈牙利符号

逻辑很简单:对于任何给定的数据对象,可能有两个或多个控件与之关联。例如,如果您有一个在文本框中指示出生日期的控件,则您将有:

  • 文本框
  • 指示文本框用于出生日期的标签
  • 允许您选择日期的日历控件
为此,我将lblBirthDate作为标签,txtBirthDate作为文本框,calBirthDate作为日历控件


不过,我很想听听其他人是如何做到这一点的。:)

不管是否使用匈牙利符号,我更好奇的是人们是否在标准私有成员变量前面加上了m_u或u或其他任何东西


不管有没有匈牙利符号,我更喜欢 好奇人们是否预先准备了m或 不管他们用什么做标准的私人用途 成员变量

卢克


我对类库对象使用uu前缀。出于我所说的原因,我只在UI中使用匈牙利符号。

我在成员变量中使用m_,但我越来越倾向于像在方法参数和局部变量中一样使用lowerCamelCase。公共物品是大写的


这似乎是整个.NET社区或多或少接受的惯例。

我个人用_

表单控件总是以类型作为前缀,我这样做的唯一原因是因为intellisense。对于大型表单,只需键入lbl并从列表中选择它,就可以更容易地“获取标签值”^ ^它还遵循以下步骤


尽管这又回到了微软的.NET编码指南中,但请查看它们。

对我来说,给私有成员预先加下划线的命名约定的最大成功与Intellisense有关。因为下划线在字母表中的任何字母之前,所以当我用ctrl空格调出Intellisense时,我所有的私有成员都在顶部

不过,就命名而言,控件是另一回事。我认为范围是假定的,出于同样的原因,在前面加几个字母来表示类型(例如txtMyGroovyTextbox)更有意义;控件按类型在Intellisense中分组


但在工作中,一路都是VB,我们做MPrivatember。我想m可能代表模块。

我的变量名中从不使用下划线。我发现除了字母(有时是字母数字)字符以外的任何字符都是多余的,除非语言有要求。

我属于大写/小写阵营(“title”是私有的,“title”是公共的),混合了UI组件的“匈牙利”符号(tbTextbox、lblLabel等),我很高兴团队中没有不区分大小写的Visual Basic开发人员:-)


我不喜欢下划线,因为它看起来有点难看,但我必须承认它有一个优点(或缺点,取决于您的观点):在调试器中,所有私有变量都将位于顶部,因为u位于字母表的顶部。但是,我还是希望我的private/public对在一起,因为这样可以更容易地调试getter/setter逻辑,因为您可以看到private和public属性彼此相邻,

我通过VB找到了控件的控件类型前缀。我的私人成员使用小写(firstLetterLowercase),而公共成员使用Pascal/大写(FirstLetterUppercase)

如果标识符/成员/局部变量太多,以至于有90%的机会记住/猜测它的名称,那么可能需要更多的抽象


我从未确信存储类型前缀是有用和/或必要的。但是,我有一个很强的习惯,即遵循我正在使用的任何代码的样式。

我写下它们所代表的数据库列的名称