我正在用C#创建一个基于Windows Forms的应用程序。我的表单的构造函数接受参数string title
,然后将该值保存到string this.Title
属性,最后我创建一个窗口标签Label this.Title
。
问题很明显:我的Label
和string
具有相同的名称,我对C#中的命名约定感到好奇。我该怎么办?
这是完整的代码:
// BNForm.cs
public partial class BNForm : Form
{
public string Title;
public BNForm(string title)
{
this.Title = title;
InitControls();
}
}
// BNForm.Designer.cs
partial class BNForm
{
private Label Title;
private InitControls()
{
this.Title = new Label();
this.Title.Text = this.Title; // Trying to access the string here
this.Title.AutoSize = true;
this.Title.Location = new Point(15, 15);
this.Controls.Add(this.Title); // Trying to access the Label here
}
}
我首先调用了我的标签变量label_Title
,但后来我必须添加一个新变量Button[] Buttons
,然后应该调用buttonArray_Buttons
,这听起来很愚蠢。
我应该如何命名我的变量?是否有这种命名的规则?
答案 0 :(得分:3)
不要使用前缀,因为它们被认为是不好的做法。只需使用常识。如何调用标签字段titleLabel
呢? “它在锡上说的是什么”......即它是明确的。
答案 1 :(得分:1)
首先,我要清楚地知道只有不同情况的变量名称,通常这是一个巨大的可理解性问题。 我倾向于在带有arg的方法中为我的参数添加前缀,但是有些人不喜欢这样。
LblTitle或一些等效的匈牙利表示法是一种相当标准的方法。我尽量避免这种情况。如果您想在文本框中显示标题,重命名所有内容或启用混淆模式,该怎么办?
在这种情况下,我会将Title属性重命名为DisplayTitle,或将标签重命名为TitleDisplay。
另一种选择是创建一个结构或类来保存标题属性然后你可以做
[this。] Title.Text = [this。] Setup.Title;
无论你做什么选择一个标准并坚持下去,都是唯一的规则。
答案 2 :(得分:0)
以下是变量命名中的几个dos和donts以及不同控件的其他前缀指南。
下放
不该做什么
变量命名建议。只需根据对象类型为所有变量添加前缀:
希望这会有所帮助。
答案 3 :(得分:0)
现在我了解C#
(以及“Antonijn”已经在评论中提到过)了解更多我知道private
成员变量应以小写字母和public
开头属性以大写字母开头。
考虑到这一点,我的public string Title;
保持原样,但标签变为private Label title;
,这让我将这两者分开。感谢大家的答案,即使他们没有帮助我解决这个问题(好的建议,我只是不喜欢lblTitle
等),他们给了我更多关于C#的知识。