命名类操作的约定?

时间:2011-01-19 06:51:59

标签: naming-conventions class-design operations

您使用哪些约定来命名类操作?

3 个答案:

答案 0 :(得分:1)

全文doc:Download C# Coding Standards & Best Practices

命名约定和标准

注意: 本文档中使用术语Pascal Casing和Camel Casing。 Pascal Casing - 所有单词的第一个字符是大写字母,其他字符是小写字母。 示例:BackColor Camel Casing - 所有单词的第一个字符,除了第一个单词是大写字母,其他字符是小写字母。 示例:backColor

  1. 对类名称使用Pascal大小写

    公共类HelloWorld {  ... }

  2. 对方法名称使用Pascal大小写

    void SayHello(字符串名称) {  ... }

  3. 将Camel大小写用于变量和方法参数

    int totalCount = 0; void SayHello(字符串名称) {  string fullMessage =“Hello”+ name;  ... }

  4. 对Camel Casing使用前缀“I”作为接口(例如:IEntity)

  5. 不要使用匈牙利表示法来命名变量。

  6. 在早期,大多数程序员都喜欢它 - 将数据类型作为变量名的前缀,并使用m_作为成员变量的前缀。例如:

    string m_sName; int nAge;

    但是,在.NET编码标准中,不建议这样做。不应使用数据类型和m_来表示成员变量。所有变量都应使用驼峰套管。

    一些程序员仍然喜欢使用前缀m_来表示成员变量,因为没有其他简单的方法可以识别成员变量。

    1. 使用有意义的描述性词语来命名变量。不要使用缩写。
    2. 好:

      string address
      int salary 
      

      不好:

      string nam
      string addr
      int sal 
      
      1. 不要使用单字符变量名,如i,n,s等。使用index,temp等名称
      2. 在这种情况下的一个例外是用于循环迭代的变量:

        for ( int i = 0; i < count; i++ )
        {
         ...
        }
        

        如果该变量只用作用于迭代计数器,并在环路不使用任何其他地方,许多人仍然喜欢用一个单个字符变量(i),而不是发明一种不同的合适的名称。

        1. 不要将下划线(_)用于局部变量名。

        2. 所有成员变量都必须以下划线(_)作为前缀,以便可以从其他局部变量中识别它们。

        3. 请勿使用类似关键字的变量名称。

        4. 使用“is”或类似前缀作为前缀布尔变量,属性和方法。

        5. Ex:private bool _isFinished

          1. 命名空间名称应遵循标准模式
          2. ...

            1. 为UI元素使用适当的前缀,以便您可以从其余变量中识别它们。
            2. 这里推荐2种不同的方法。

              一个。对所有UI元素使用公共前缀(ui_)。这将有助于您将所有UI元素组合在一起,并且可以从智能感知中轻松访问所有这些元素。

              湾为每个ui元素使用适当的前缀。简要列表如下。由于.NET已经给几个控件,您可能需要在标准前缀的每一个正在使用的控件(包括第三方控件)的完整列表到达。

              Control Prefix
              Label lbl
              TextBox txt
              DataGrid dtg
              Button btn
              ImageButton imb
              Hyperlink hlk
              DropDownList ddl
              ListBox lst
              DataList dtl
              Repeater rep
              Checkbox chk
              CheckBoxList cbl
              RadioButton rdo
              RadioButtonList rbl
              Image img
              Panel pnl
              PlaceHolder phd
              Table tbl
              Validators val
              
              1. 文件名应与班级名称匹配。
              2. 例如,对于类HelloWorld,文件名应为helloworld.cs(或helloworld.vb)

                1. 使用Pascal Case作为文件名。

                2. 缩进和间距

                3. 使用TAB进行缩进。不要使用SPACES。将标签大小定义为4。

                4. 注释应与代码处于同一级别(使用相同级别的缩进)。

                5. 好:

                  // Format a message and display
                  
                  string fullMessage = "Hello " + name;
                  DateTime currentTime = DateTime.Now;
                  string message = fullMessage + ", the time is : " + currentTime.ToShortTimeString();
                  MessageBox.Show ( message );
                  

                  不好:

                  // Format a message and display
                  string fullMessage = "Hello " + name;
                  DateTime currentTime = DateTime.Now;
                  string message = fullMessage + ", the time is : " + currentTime.ToShortTimeString();
                  MessageBox.Show ( message );
                  
                  1. 大括号({})应与大括号外的代码处于同一级别。

                  2. 使用一个空行分隔逻辑代码组。

                  3. 好:

                     bool SayHello ( string name )
                     {
                      string fullMessage = "Hello " + name;
                      DateTime currentTime = DateTime.Now;
                    
                      string message = fullMessage + ", the time is : " + currentTime.ToShortTimeString();
                    
                      MessageBox.Show ( message );
                    
                      if ( ... )
                      {
                       // Do something
                       // ...
                    
                       return false;
                      }
                    
                      return true;
                     }
                    

                    不好:

                    bool SayHello (string name)
                     {
                      string fullMessage = "Hello " + name;
                      DateTime currentTime = DateTime.Now;
                      string message = fullMessage + ", the time is : " + currentTime.ToShortTimeString();
                      MessageBox.Show ( message );
                      if ( ... )
                      {
                       // Do something
                       // ...
                       return false;
                      }
                      return true;
                     }
                    
                    1. 类中的每个方法之间应该只有一个空行。

                    2. 花括号应该在一个单独的行上,而不是在同一行,等等。

                    3. 好:

                      if ( ... ) 
                        {
                         // Do something
                        }
                      

                      不好:

                      if ( ... ) {
                         // Do something
                        }
                      
                      1. 在每个操作符和括号之前和之后使用单个空格。
                      2. 好:

                        if ( showResult == true )
                          {
                           for ( int i = 0; i < 10; i++ )
                           {
                            //
                           }
                          }
                        

                        不好:

                        if(showResult==true)
                          {
                           for(int    i= 0;i<10;i++)
                           {
                            //
                           }
                          }
                        
                        1. 使用#region将相关的代码片段组合在一起。如果您使用#region进行适当的分组,则在折叠所有定义时,页面应该是这样的。

                        2. 将私有成员变量,属性和方法保留在文件顶部,将公共成员保留在底部。

答案 1 :(得分:1)

我发现它使每个人的生活更容易使用您正在使用的语言和框架所使用的相同命名约定。

例如,.Net有一个convention。模拟您的语言,您的代码和库的“用户”会更快乐。所以,答案可能是,这取决于您的语言和/或平台......

答案 2 :(得分:0)

命名约定是一个有争议的话题,因为它是一种任意的区别。

以上两个答案都很好。我的补充是:

您的目标是可读性。你的代码讲述了一个故事,虽然有时候很无聊。确保故事清晰。

如需额外的乐趣,请参阅以下链接:

http://www.joelonsoftware.com/articles/Wrong.html

http://en.wikipedia.org/wiki/Naming_convention_%28programming%29