.NET建议使用的大小写命名原则open in new window

posted on 2004-09-13 11:41 风前絮~~ 阅读(4342) 评论(5)

在托管类库中要保证可预见性和可发现性的其中一个重要因素就是使用一致的命名原则。的确,在团队中如果可以使用一致的命名原则可以避免许多常见的问题。

例如大小写原则,如果以前是使用VC的就会发现,.NET提供的例子和我们习惯看到的大小写原则不同的。在VC中喜欢用匈牙利命名方式,即用一个小写的前缀来说明变量的类型或者使用目的,如m_nSize等,这种原则在以前用VC来编写ATL时候还觉得十分好的,因为这里的变量包含了变量类型,确实也可以避免了好些问题。

但到了.NET中呢,.NET框架建议使用的是另外两种大小写风格,而匈牙利方式被建议不要使用了,不知道是否因为数据类型在这里的处理已经由框架来代为处理的缘故?

Pascal大小写方式:学过Pascal的应该不陌生了。每个单词的第一个字母都大写。如FontColor。
Camel大小写方式:除第一个字母外,其它都将第一个字母大写。如fontColor。

而不同的地方也建议统一使用不同的命名规则:

  1. 所有的标识符(类型名称或者成员名称)用Pascal方式;
  2. 参数和本地变量应该使用Camel方式;

1楼 2004-09-13 15:15 | fans1

我喜欢类的private变量用 myVarName 或者m_VarName(固定前缀m_,不因为变量类型变化而变,实际是my的意思)来表示,局部变量用最简短的单词全小写,而Attribute和函数名则喜欢Pascal方式

2楼 2004-09-13 17:04 | xport

1.所有的标识符(类型名称或者成员名称)用Pascal方式;
這個有問題, 因為C#中有Properties, 通常我採用:

成員名稱:
private string _UserName;

Property:
public string UserName
{
    get
    {
        return this._UserName;
    }
}

3楼 2004-09-13 17:35 | 风前絮~~

To xport,
对于属性对应的private,可以用myXXX的方式啊...
不过这些都是见仁见智的啦,关键自己用得方便,人家看得明白...
这里是MSDN中的微软用属性时的命名规则例子:private使用Camel

using System;
class Person
{
    private string myName ="N/A";
    private int myAge = 0;

    // Declare a Name property of type string:
    public string Name
    {
        get 
        {
           return myName; 
        }
        set 
        {
           myName = value; 
        }
    }

    // Declare an Age property of type int:
    public int Age
    {
        get 
        { 
           return myAge; 
        }
        set 
        { 
           myAge = value; 
        }
    }
}

4楼 2004-09-13 21:42 | juqiang

M$之所以放弃匈牙利命名法,似乎是因为M$以前搞的变量类型太多了。放弃这个命名方法,只是一个放弃以前混乱类型的由头。
其实上面的property,我们更习惯于这么写了:

private string name;
public MyClass(string name){
    this.name = name;
}

public string Name{
    get{
        return this.name;
    }
}

details,%program files%下面的.net framework有一个非常详细地word文档,大家可以参考。

5楼 2004-09-14 13:43 | 灵感之源

我仍然喜欢匈牙利l;)

Contributors: FHL