strMails?我通常将它作为字符串
结构的话,我是用struMail:)

解决方案 »

  1.   

    我的命名约定是
    结构:Stru_Mail
    字符串:Str_Mail
      

  2.   

    我从一本书上看的:1.名称大小写和前缀:
    C#中的约定是命名变量时不使用任何前缀,如 string Message;
    几乎所有的情况下,名称都是用Pascal大小写命名形式.Pascal大小写形式
    是指单词的第一个字母大写,如:int EmployeeSalary,
    const int MaxLength;传递给方法的参数采用camel大小写形式,就是第一个单词的第一个字母小写.
    如:
    public void Hehe(string sayHello,int times)...如果是属性的话,也是用camel来区分:
    private string studentName;public string StudentName
    {
             get { return studentName; }
    }就是说,私有成员尽量用camel大小写形式,共有或者受保护的成员用
    Pascal大小写形式2.名称的风格:
    应该保持一致,如ShowConfirmationDialog(),ShowWarningDialog()3.名称空间
    采用以下格式
    <CompanyName>.<TechnologyName>
      

  3.   


    主  题:  .NET命名规范中文版 
       
    词语选择避免使用由经常使用的名称空间复制的类型名。类型名不能使用下列词语。System Collections Forms UI避免使用与常用关键词冲突的标识符。例如,避免使用下列词语。 AddHandler AddressOf Alias And Ansi As Assembly Auto BitAnd BitNot BitOr BitXor Boolean ByRef Byte ByVal Call Case Catch CBool CByte CChar CDate CDec CDbl Char CInt Class CLng CObj Const CShort CSng CStr CType Date Decimal Declare Default Delegate Dim Do Double Each Else ElseIf End Enum Erase Error Event Exit ExternalSource False Finally For Friend Function Get GetType Goto Handles If Implements Imports In Inherits Integer Interface Is Let Lib Like Long Loop Me Mod Module MustInherit MustOverride MyBase MyClass Namespace New Next Not Nothing NotInheritable NotOverridable Object On Option Optional Or Overloads Overridable Overrides ParamArray Preserve Private Property Protected Public RaiseEvent ReadOnly ReDim Region REM RemoveHandler Resume Return Select Set Shadows Shared Short Single Static Step Stop String Structure Sub SyncLock Then Throw To True Try TypeOf Unicode Until Variant When While With WithEvents WriteOnly Xor eval extends instanceof package var 
    标识符(包括参数名)中不要使用缩写。如果必须使用缩写:任何超过两个字符以上的缩写都使用camel大写格式,即使这不是标准缩写。
    名称空间命名名称空间的一般规则如下:CompanyName.TechnologyName这样,我们看到的名称空间应该是这样的:Microsoft.OfficePowerSoft.PowerBuilder注意:这只是一个原则。第三方公司可以选择其它的名字。避免用公司名称或其它著名品牌的名称作为名称空间的前缀,这样会造成两个公布的名称空间有同一个名称的可能性。(例如,将微软提供的Office自动类命名为Microsoft.Office。)使用Pascal大写方式,用逗号分隔逻辑成分(例如,Microsoft.Office.PowerPoint)。如果你的品牌使用的是非传统大写方式,那么一定要遵循你的品牌所确定使用的大写方式,即使这种方式背离了通常的名称空间大写规则(例如,NeXT.WebObjects,和ee.cummings。)该用复数的时候要使用复数的名称空间名。例如,使用System.Collections而不是System.Collection。本规则的特例是品牌名称和缩写。例如:使用System.IO而不是System.IOs。名称空间和类不能使用同样的名字。例如,有一个类被命名为Debug后,就不要再使用Debug作为一个名称空间名。类和类成分类的命名原则用名词或名词短语命名类。使用Pascal大写。减少类名中缩写的使用量。不要使用任何类前缀(比如C)。不要使用带下划线的字符。下面是一些正确命名的类名的例子。public class FileStream {}public class Button {}public class String {}接口命名原则使用名词或名词短语,或者描述行为的形容词来命名接口。例如,IComponent(描述性名词),ICustomAttributeProvider(名词短语),和IPersistable(形容词)。使用Pascal大写。减少接口名中缩写的使用量。不要使用带下划线的字符。在接口名前加前缀I,以表示这个类型是一个接口。不要在类名前加上前缀C。偶而情况下,需要在类名前加上I而并不表示它是一个接口。在这种情况下,只要I后面的字符是小写就可(例如,IdentityStore。)当类是接口的标准执行时,定义这一对类/接口组合就要使用相似的名称。两个名称的不同之处只是接口名前有一个I前缀。下面我们举个例子,来看看接口IComponent和它的标准执行,类Component。public interface IComponent {}public class Component : IComponent {}public interface IServiceProvider{}public interface IFormatable {}属性命名原则在属性的后面加上Attribute后缀,来自定义属性类。如下例所示。public class ObsoleteAttribute{}Enum命名原则Enum需使用Pascal大写。Enum值名需使用Pascal大写。减少enum名中缩写的使用量。Enum名前不要加前缀(例如,adxxx表示ADO enums,rtfxxx表示多信息文本enum,等等。)。在enum类型上不要加Enum后缀。Enum名称需使用单数名词。比特域使用复数名词。如果列举值在参数或属性中使用,需用一个enum来定义列举值。这样工具就可以知道一个属性或参数可能的值了。public enum FileMode{Create,CreateNew,Open,OpenOrCreate,Truncate}如果数字值to be bitwise or'ed together,就使用Flags对属性进行自定义。[Flags]public enum Bindings {CreateInstance,DefaultBinding,ExcatBinding,GetField,GetProperty,IgnoreCase,InvokeMethod,NonPublic,OABinding,SetFieldSetProperty,Static}在封装一个Win32 API时,这个规则有一个特例。从一个Win32标头产生内部定义是很常见的。你可以使用Win32大写,这种形式下字母通常全部大写。使用Int32作为一个enum的基础类型。如果这个enum代表标志,而且标志又非常多(大于32),或者这个enum在将来可以发展成许多标志,或者类型需要与类型int有所不同以便向后兼容时,在这种情况下就产生了特例。只有在值可以被完全表示为一组位标志时,才使用enum。开集不能使用enum(例如操作系统版,等等)。只读和Const字段名用名词,名词短语,或名词的缩写命名静态字段。用Pascal大写命名静态字段。不要用匈牙利文类型的符号作静态字段名的前缀。参数名使用描述性参数名。参数名应该具有足够的描述性,这样在大多数情况下参数名和它的种类可以用来确定它的意思。用camel大写方式命名参数。根据参数的意思来命名参数,而不是根据参数的种类来命名。我们希望开发工具可以用很方便的方式提供关于参数种类的信息,这样参数名可以得到更好的使用,可以对语义而不是对种类进行描述。但是偶尔使用根据类型命名的参数名也是完全可以的。不要使用保留参数。如果在下一个版本中需要更多的数据,可以增加进来。不要用匈牙利文类型的符号作为字段名的前缀。Type GetType (string typeName)string Format (string format, object [] args)方法命名原则用动词或动词短语命名方法。用下述范例所示的Pascal大写方式命名方法。RemoveAll()GetCharArray()Invoke()属性命名原则用名词或名词短语命名属性。用Pascal大写命名属性。属性与类型要一样。用与一个类型的名称相同的名字来命名属性时,就使这个属性的类型成为那个类型。虽然听起来有些奇怪,但这是正确的。下面的例子正确使用了属性命名原则。public enum Color {...} public class Control {public Color Color { get {...} set {...} } }下例就是不正确的。public enum Color {...}public class Control {public int Color { get {...} set {...} }}在那个不正确的例子中,要想引用Color enum是不可能的,因为Color,Xxx会被翻译成一个成员访问,它会首先获得Color属性的值(int种类),然后再访问那个值的成员(它应该是System.Int32的一个实例成员)。事件命名原则用EventHandloer后缀命名事件处理程序,如下列所示。public delegate void MouseEventHandler(object sender, MouseEvent e);使用名为sender和e的两个参数。Sender参数代表提出事件的对象。Sender参数永远是一个类型对象,即使它可能使用了更为特定的类型。与事件相关的状态被封装在一个名为e的事件类范例中。要使用这个类型的正确的、特定的事件类。public delegate void MouseEventHandler(object sender, MouseEvent e);用EventArgs后缀命名事件自变量类,如下例所示。public class MouseEventArgs : EventArgs {int x;int y;public MouseEventArgs(int x, int y){ this.x = x; this.y = y; }public int X { get { return x; } }public int Y { get { return y; } }}命名事件名时,需要有之前和之后的时态概念,因此要使用现在时态和过去时态(不要使用BeforeXxx\AfterXxx的方式)。例如,可以被取消的结束事件就有Closing事件和Closed事件。public event ControlEventHandler ControlAdded {//..}用动词命名事件。区分大小写不要使用需要对大小写作出区分的名称。各成分不论是在区分大小写还是不区分大小写的语言下都必须是完全可用的。因为不区分大小写的语言不能在同样的环境下对只有大小写不同的两个名称作出辩别,所以成分必须避免这种情况。不要产生两个名称相同只有大小写不同的名称空间。namespace ee.cummings;namespace Ee.Cummings;带有两个参数的一个类型,其两个参数的名称不能只有大小写不同。void foo(string a, string A)System.WinForms.Point p;System.WinForms.POINT pp;带有两个属性的一个类型,其属性的名称不能只有大小写不同。int Foo {get, set};int FOO {get, set}带有两种方法的一个类型,其方法的名称不能只有大小写不同。void foo();void Foo();避免类型名出现混淆不同的语言使用不同的术语以识别基本管理类