Najlepsze praktyki dotyczące standardów kodowania C#

Najlepsze praktyki dotyczące standardów kodowania C#

Nazwy klas

Używaj PascalCasing dla nazw klas i nazw metod.

public class MojaKlasa
{    
   public void ObliczCos()    
   {        
      //...    
   }    
   public void ObliczCosInnego()    
   {        
      //...    
   }
}

Nazwy zmiennych

Używaj camelCasing dla zmiennych lokalnych i argumentów metod.

public class User
{    
   public void AddUser(LogEvent logEvent)    
   {        
      int itemCount = logEvent.Items.Count;        
      // ...    
   }
}

Identyfikatory

Nie używaj notacji węgierskiej ani żadnej innej identyfikacji typu w identyfikatorach.

// Prawidłowe
int counter;
string name;

// Unikać 
int iCounter;
string strName;

Stałe

Nie używaj krzyczących kapitalików dla stałych lub zmiennych tylko do odczytu.

// Prawidłowe
public static const string ShippingType = "DropShip"; 

// Unikać
public static const string SHIPPINGTYPE = "DropShip";

Skróty

Unikaj używania skrótów .
Wyjątki: skróty powszechnie używane jako nazwy, takie jak Id, Xml, Ftp, Uri.

// Prawidłowe
UserGroup userGroup;
Assignment employeeAssignment; 

// Unikać
UserGroup usrGrp;
Assignment empAssignment; 

// Wyjątki
SupplierId supplierId;
XmlDocument xmlDocument;
FtpHelper ftpHelper;
UriPart uriPart;

Skrót Obudowa

Używaj PascalCasing dla skrótów 3 znakowych lub więcej (2 znaki wielkimi literami).

HtmlHelper htmlHelper;
FtpTransfer ftpTransfer;
UIControl uiControl;

Brak podkreśleń

Nie używaj podkreśleń w identyfikatorach.
Wyjątek: prywatne zmienne statyczne można poprzedzić podkreśleniem.

// Prawidłowe
public DateTime supplierAppointment;
public TimeSpan timeLeft; 

// Unikać
public DateTime supplier_Appointment;
public TimeSpan time_Left;
 
// Wyjątek
private DateTime _registrationDate;

Pisz nazwy

Używaj predefiniowanych nazw typów zamiast nazw typów systemowych , takich jak Int16, Single, UInt64 itp.

// Prawidłowe
string firstName;
int lastIndex;
bool isSaved; 

// Unikać
String firstName;
Int32 lastIndex;
Boolean isSaved;

Typy niejawne

Używaj niejawnego typu var dla deklaracji zmiennych lokalnych.
Wyjątek: typy podstawowe (int, string, double itd.) używają predefiniowanych nazw.

// Prawidłowe
var stream = File.Create(path);
var customers = new Dictionary(); 

// Wyjątki
int index = 100;
string timeSheet;
bool isCompleted;

Nazwy klas

Używaj rzeczowników lub wyrażeń rzeczownikowych, aby nazwać klasę.

public class Supplier
{}
public class BusinessLocation
{}
public class DocumentCollection
{}

Interfejsy

Rób interfejsy prefiksowe z literą I . Nazwy interfejsów to rzeczowniki (frazy) lub przymiotniki.

public interface IShape
{}
public interface IShapeCollection
{}
public interface IGroupable
{}

Nazwy plików

Nazwij pliki źródłowe zgodnie z ich głównymi klasami. Wyjątek: nazwy plików z klasami częściowymi odzwierciedlają ich źródło lub przeznaczenie.

// Located in Supplier.cs
public partial class Supplier
{ 
 //...
}

Przestrzenie nazw

Organizuj przestrzenie nazw z jasno określoną strukturą.

// Examples
namespace Company.Product.Module.SubModule
namespace Product.Module.Component
namespace Product.Layer.Module.Group

Nawiasy klamrowe

Wykonaj pionowe wyrównanie nawiasów klamrowych.

class Program
{ 
   static void Main(string[] args) 
   { 
   }
}

Zmienne składowe

Deklaruj wszystkie zmienne składowe na początku klasy, a zmienne statyczne na samym szczycie.

public class Account
{    
   public static string BankName;    
   public static decimal Reserves;     

   public string Number {get; set;}    
   public DateTime DateOpened {get; set;}    
   public DateTime DateClosed {get; set;}    
   public decimal Balance {get; set;}     

   // Constructor    
   public Account()    
   {        
      // ...    
   }
}

Wyliczenia

Używaj nazw w liczbie pojedynczej dla wyliczeń. Wyjątek: wyliczenia pól bitowych.

// Prawidłowe
public enum Color
{     
   Red,    
   Green,    
   Blue,    
   Yellow,    
   Magenta,    
   Cyan
} 

// Wyjątek
[Flags]
public enum Dockings
{     
   None = 0,    
   Top = 1,     
   Right = 2,     
   Bottom = 4,    
   Left = 8
}

Typy wyliczeń

Nie określaj jawnie typu wyliczenia ani wartości wyliczeń (z wyjątkiem pól bitowych).

// nie prawidłowe
public enum Direction : long
{ 
   North = 1, 
   East = 2, 
   South = 3, 
   West = 4
} 

// Prawidłowe
public enum Direction
{    
   North,    
   East,    
   South,    
   West
}

Przyrostek wyliczenia

Nie dodawaj do nazw wyliczenia Enum.

//  nie prawidłowe
public enum CoinEnum
{    
   Penny,    
   Nickel,    
   Dime,    
   Quarter,    
   Dollar
} 

// Prawidłowe
public enum Coin
{    
   Penny,    
   Nickel,    
   Dime,    
   Quarter,    
   Dollar
}

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *