Avatar ·

Orden de los elementos en una clase C#: campos, propiedades, constructores, métodos — ¿existe un estándar?

¡Hola a todos! Soy un desarrollador C# principiante y me atormenta una pregunta. Cuando escribo clases, simplemente agrego campos, luego propiedades, luego constructores y métodos en el orden en que se me ocurren. Pero recientemente en una code-review un desarrollador senior hizo un comentario: "Orden incorrecto de los elementos en la clase".

Busqué en internet y encontré muchas opiniones diferentes. Algunos escriben: primero todos los campos private, luego propiedades public, luego constructores, luego métodos. Otros dicen: primero miembros public, luego protected, luego private. Otros incluso ordenan alfabéticamente.

Aquí hay un ejemplo de mi clase que fue criticada:

public class Employee
{
    public string LastName { get; set; }
    private int _age;
    public Employee(string name) { Name = name; }
    public string Name { get; set; }
    public void PrintInfo() { Console.WriteLine($"{Name}, {_age}"); }
    private int _id;
    public int Age { get { return _age; } set { _age = value; } }
  }