2

我正在用 C#创建一个基于Windows 窗体的应用程序。我的表单构造函数接受 parameter string title,然后将该值保存到string this.Title属性中,最后我创建了一个 windows label Label this.Title

问题很明显:我的Labelstring有相同的名字,而且我对 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它,这对我来说听起来很愚蠢。

我应该怎样命名我的变量?这种命名是否有规则?

4

4 回答 4

3

不要使用前缀,因为它们被认为是不好的做法。只需使用常识。如何titleLabel改为调用您的标签字段?“按照锡上所说的做”......即它是明确的。

于 2013-02-03T14:48:59.513 回答
1

好吧,首先我会远离仅因大小写而异的变量名称,通常这是一个巨大的可理解性问题。我倾向于在方法中使用 arg 前缀我的论点,但有些人不喜欢这样。

LblTitle 或一些等效的匈牙利符号是一种相当标准的方法。我尽量避免这种情况。例如,如果您想在文本框中显示标题,重命名所有内容或启用混淆模式怎么办。

在这种情况下,我会将 Title 属性重命名为 DisplayTitle 或将标签重命名为 TitleDisplay。

另一种选择是创建一个结构或类来保存标题属性然后你可以做

[this.]Title.Text = [this.]Setup.Title;

无论你做什么选择一个标准并坚持它,都是唯一的规则。

于 2013-02-03T14:38:53.037 回答
0

以下是变量命名中的几个注意事项以及针对不同控件的其他前缀指南。

做事

  • 请使用有意义的名称来命名所有标识符,以描述其功能。
  • 使用“m_”为成员字段添加前缀,但不要使用其他前缀(f 前缀、后缀等)
  • 请使用英文名称命名所有标识符。
  • 对命名空间、类型、枚举、方法名称使用 Pascal 大小写。
  • 对参数、字段和局部变量使用驼峰式大小写。
  • 一定要在所有接口前面加上 I。在所有异常类后面加上 Exception。
  • 使用 Attribute 为所有属性类添加后缀。请使用 EventHandler 为所有事件处理程序添加后缀。
  • 一定要使用大写的常量。

不要

  • 不要使用匈牙利符号。
  • 不要对任何长度超过两个字符的标识符使用大写(如上所述的常量除外)。
  • 不要仅仅根据它们的大小写来区分标识符。
  • 不要使用缩写或缩写。
  • 不要使用业内不普遍接受的首字母缩略词。
  • 不要对超过两个字符的首字母缩写词使用大写。
  • 不要使用重复关键字或常用 .NET 命名空间的标识符名称。
  • 不要为枚举、类、结构或委托名称添加前缀。
  • 不要使用 Enum 为枚举类型添加后缀。

变量命名建议。只需根据对象类型为所有变量添加前缀:

  • 按钮 - btn
  • 复选框 - chk
  • 组合框 - cmb
  • 数据列 - dcol
  • 数据网格 - dgrid
  • DataGridDateTimePickerColumn - dgdtpc
  • DataGridTableStyle - dgts
  • DataGridTextBoxColumn - dgtbc
  • 对话框 - dlg
  • GroupBox - gbx
  • 图像列表 - iml
  • 标签 - lbl
  • 列表框 - lbx
  • 列表视图 - lv
  • 主菜单 - 毫米
  • 菜单项 - mi
  • MDI 框架 - frm
  • MDI-Sheet - sht
  • NumericUpDown - nud
  • 面板 - pnl
  • 图片框 - pbx
  • 单选按钮 - rbt
  • SDI-表格 - 表格
  • 状态栏 - stb
  • TabControl - 选项卡
  • TabPage - 选项卡
  • 文本框 - txt
  • 工具栏 - tbr
  • 工具栏按钮 - 待定
  • 定时器 - tmr
  • 用户控制 - 用户
  • WindowsPrincipal - wpl
  • GridEX - gex
  • 树视图 - 电视
  • UICommand - cmd
  • 编辑框 - 编辑
  • 数据视图 - 视图
  • 数据表 - tbl
  • 数据集 - ds

希望这可以帮助。

于 2013-02-03T14:54:30.373 回答
0

现在我知道更多了C#(并且“Antonijn”已经在评论中提到了它)我知道private成员变量应该以小写字母开头,public属性以大写字母开头。

记住这一点,我public string Title;保持原样,但标签变成了private Label title;让我将这两者分开的标签。感谢大家的回答,即使他们都没有帮助我解决这个确切的问题(好的建议,我只是不喜欢lblTitle等等),他们给了我更多的 C# 知识。

于 2013-02-26T10:35:12.490 回答