我应该如何用相同的名称作为变量的前缀
本文关键字:变量 前缀 何用相 我应该 | 更新日期: 2023-09-27 17:57:08
我正在用C#创建一个基于Windows Forms的应用程序。我的表单的构造函数采用参数 string title
,然后将该值保存到string this.Title
属性,最后我创建一个 Windows 标签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
,这对我来说听起来很愚蠢。
我应该如何命名我的变量?这种命名甚至有规则吗?
不要使用前缀,因为它们被认为是不好的做法。只是使用常识。如何改为titleLabel
调用标签字段?"按照锡上说的做"...即它是明确的。
我会很好地避开仅因大小写而异的变量名称,通常这是一个巨大的可理解性问题。我倾向于在带有arg的方法中作为我的论点前缀,但有些人不喜欢这样。
LblTitle或一些等效的匈牙利符号是一种相当标准的方法。不过,我尽量避免这种情况。例如,如果您想在文本框中播放标题,重命名所有内容或启用混淆模式怎么办。
在这种情况下,我将 Title 属性重命名为 DisplayTitle,或将标签重命名为 TitleDisplay。
另一种选择是创建一个结构或类来保存标题属性,然后你可以这样做
[这。标题文本 = [这个。设置标题;
无论你做什么,选择一个标准并坚持下去,都是唯一的规则。
以下是变量命名中的几个注意事项以及不同控件的其他前缀准则。
待办事项
- 使用有意义的名称命名所有标识符,以描述其功能。
- 使用"m_"作为成员字段的前缀,但不要使用其他内容(f前缀、后缀等)
- 务必用英文名称命名所有标识符。
- 对命名空间、类型、枚举、方法名称使用 Pascal 大小写。
- 请对参数、字段和局部变量使用驼峰大小写。
- 务必以 I 作为所有接口的前缀。为所有异常类添加后缀例外。
- 务必为所有属性类添加属性后缀。给所有后缀带有事件处理程序的事件处理程序。
- 对常量使用大写 。
注意 事项
- 不要使用匈牙利语符号。
- 不要对任何长度超过两个字符的标识符使用大写(上述常量除外)。
- 不要仅根据大小写来区分标识符。
- 不要使用缩写或缩略语。
- 不要使用业内不普遍接受的首字母缩略词。
- 不要对长度超过两个字符的首字母缩略词使用大写。
- 不要使用与关键字或常用 .NET 命名空间重复的标识符名称。
- 不要在枚举、类、结构或委托名称前面添加前缀。
- 不要在枚举类型后加上 Enum。
变量命名建议。只需根据对象类型为所有变量添加前缀:
- 按钮 - btn
- 复选框 - 中国
- 组合盒 - CMB
- 数据列 - dcol
- DataGrid - dgrid
- DataGridDateTimePickerColumn - dgdtpc
- DataGridTableStyle - dgts
- DataGridTextBoxColumn - dgtbc
- 对话框 - dlg
- 组框 - gbx
- 图像列表 - iml
- 标签 - 磅
- 列表框 - lbx
- 列表视图 - LV
- 主菜单 - 毫米
- 菜单项 - mi
- MDI-Frame - frm
- MDI-Sheet - sht
- 数字上下 - 裸体
- 面板 - pnl
- 图片盒 - pbx
- 单选按钮 - rbt
- SDI 表格 - 表格
- 状态栏 - 机顶盒
- 选项卡控件 - 选项卡
- 标签页 - 选项卡
- 文本框 - txt
- 工具栏 - TBR
- 工具栏按钮 - 待定
- 定时器 - TMR
- 用户控件 - usr
- WindowsPrincipal - wpl
- GridEX - gex
- 树景 - 电视
- UICommand - cmd
- EditBox - edt
- 数据视图 - viw
- 数据表 - tbl
- 数据集 - ds
希望这有帮助。
好吧,现在我对C#
有了更多的了解(并且"Antonijn"已经在评论中提到了它),我知道private
成员变量应该以小写字母开头,public
属性应该以大写字母开头。
考虑到这一点,我的public string Title;
保持原样,但标签变成了private Label title;
让我将这两者彼此分开。感谢大家的回答,即使他们都没有帮助我解决这个确切的问题(好的建议,我只是不喜欢lblTitle
等),他们给了我更多的 C# 知识。