visual tipos studio reglas para notacion nomenclador nombres nombrado métodos los lenguajes hungara funciones datos convenciones convencion constantes codigo actuales c# coding-style naming-conventions

studio - tipos de funciones en c#



Convención de nomenclatura para la clase de constantes en C#: plural o singular? (4)

Dado que ambos se usan esencialmente de la misma manera, y conceptualmente son la misma cosa, recomendaría seguir las pautas de enumeración.

Las pautas son claras para las enumeraciones ...

Utilice un nombre singular para una enumeración, a menos que sus valores sean campos de bits.

(Fuente: http://msdn.microsoft.com/en-us/library/ms229040.aspx )

... pero no tan claro para una clase de constantes (o campos / propiedades estáticas de solo lectura). Por ejemplo, ¿el nombre de esta clase debe ser singular o plural?

public static class Token // or Tokens? { public const string Foo = "Foo"; public const string Bar = "Bar"; public const string Doo = "Doo"; public const string Hicky = "Hicky"; }


No tengo ningún estándar de nomenclatura oficial con el que enlazar, pero puedo decirte lo que haría.

Yo usaría el nombre plural: Tokens


Yo usaría el nombre plural: Tokens

Sin embargo, puede considerar la creación de una clase Token para mantener el valor constante.

Esto sería similar a System.Windows.Media.Colors donde, por ejemplo, Colors.Blue devuelve una instancia de System.Windows.Media.Color .

public class Token { public Token(string value) { Value = value; } public string Value { get; private set; } public static implicit operator string(Token token) { return token == null ? null : token.Value; } public bool Equals(string value) { return String.Equals(Value, value); } public override bool Equals(object obj) { var other = obj as Token; if (other == null) { return false; } return Equals(other.Value); } public override int GetHashCode() { return Value.GetHashCode(); } public override string ToString() { return Value; } } public static class Tokens { public static readonly Token Foo = new Token("Foo"); } class Program { static void Main(string[] args) { // You can use it as if they were string constants. string token = Tokens.Foo; bool areEquals = String.Equals(token, Tokens.Foo); } }


Yo usaría el plural: Tokens . Esto implica que la clase estática está sirviendo como una colección de elementos de algún tipo (cuyos tipos de tiempo de ejecución no son los de la clase).

Por otro lado, los campos de una enumeración son instancias del tipo de enumeración . Por ejemplo, TypeCode.String es un TypeCode . Sería extraño decir que TypeCodes.String es un TypeCodes .

Sin embargo, en su ejemplo de Tokens , usar el singular nos da Token.Foo , que es un token, pero no es un Token (es una string ).

(O, si usa el nombre de clase plural, Tokens.Foo es una string , no un Tokens . ¡Ack!)