我应该如何用相同的名称作为变量的前缀

本文关键字:变量 前缀 何用相 我应该 | 更新日期: 2023-09-27 17:57:08

我正在用C#创建一个基于Windows Forms的应用程序。我的表单的构造函数采用参数 string title ,然后将该值保存到string this.Title属性,最后我创建一个 Windows 标签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,这对我来说听起来很愚蠢。

我应该如何命名我的变量?这种命名甚至有规则吗?

我应该如何用相同的名称作为变量的前缀

不要使用前缀,因为它们被认为是不好的做法。只是使用常识。如何改为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# 知识。