C# commonly used coding standards
In this article I will present you with some most commonly used coding standards that I have come across while working in multiple companies.
1. Naming Conversions
1.1 Use Pascal Casing for class and method names and camel Casing for local variables
Pascal Casing:
public class MyClass
{
public void GetData()
{
}
}
Camel Casing
public class MyClass
{
public void GetData(string productName)
{
var myProduct = GetProductFromDatabase(productName);
}
}
1.2 Do not use underscores for member names eg.
//correct
public string myVariable; public int myProduct;
//incorrect
public string my_variable; public int _ myProduct;
1.3 Do not use shortcuts eg.
//correct public string databaseConnectionString; //incorrect public string dbConnStr;
1.4 Give the function names appropriate to the returning values eg.
//correct
public string GetProductReferenceNumber()
{
}
//incorrect
public string GetObjectString()
{
}
1.5 Use predefined type names instead of system names eg.
//correct int ProductID; string ProductName; //incorrect Int32 ProductID; String ProductName;
1.6 Use the var name for variable declaration if the type can be easily identified from the right hand side of the equation eg.
//correct var name = "myname"; //incorrect var myObject = GetBasicObject();
1.7 Use noun names for classes
//correct
public class Product
{
}
//incorrect
public class UserProduct
{
}
1.8 Use „I” prefix for interface names eg.
public interface IProductCollection
1.9 Declare private variables on the top of the classes starting with statics on the top
public class Product
{
static string productName;
static int productCount;
int currectCount;
string productLocationName;
public void Calculate()
{
}
}
1.10 Use singular names for enums except bit field enums eg.
//correct
enum ProductType
{
ProductTypeOne, ProductTypeTwo
}
//incorrect
enum ProductTypes
{
ProductTypeOne, ProductTypeTwo
}
//correct
enum ProductTypes
{
ProductTypeOne = 1,
ProductTypeTwo =2
}
2. General rules
2.1 Use && and || operands instead of single & Or |. This will avoid unnecessary comparisons eg.
//correct
If(product != null && (product.Id > 0 || product.Name.length > 0))
{
}
//incorrect
If(product != null & (product.Id > 0 | product.Name.length > 0))
{
}
2.2 Always use (vertically aligned) curly brackets eg.
//correct
foreach(var item In myCollection)
{
var result = item.Result;
}
//incorrect
foreach(var item In myCollection)
var result = item.Result;
2.3 Use „using” statements for objects that implement IDisposable interface eg.
//correct
using(var connection = new SqlConnection())
{
using( var reader = command.ExecuteReader())
{
}
}
//incorrect
var connection = new SqlConnection();
var reader = command.ExecuteReader();
reader.close();
connection.close();
2.4 Use lambda expressions for events that you do not need have reference to at later stage in you code eg.
//correct
public MyForm()
{
this.Click += (s, e) => {
MessageBox.Show(((ClickEventArgs)e).Point.ToString());
};
}
//not advisable
public MyForm()
{
this.Click += new EventHandler(MyFunction_Click);
}
void Form1_Click(object sender, ClickEventArgs e)
{
MessageBox.Show(((ClickEventArgs)e).Point.ToString());
}
2.5 Use object initializers for creating object eg.
//correct
var product = new Product()
{
ProductID = 1,
ProductName = “Test”,
CreateDate = DateTime.Now
}
//incorrect
var product = new Product();
product. ProductID = 1,
product .ProductName = “Test”,
product .CreateDate = DateTime.Now
2.6 Each function should only perform one task eg.
//correct
public int CalculatePriceWithVAT(double initPrice, double vatRate)
{
return initPrice = initPrice * (1- vatRate);
}
//incorrect
public int CalculatePrice ()
{
var initPrice = GetInitPrice();
var vatRate = GetVatFromDataBase();
return initPrice = initPrice * (1- vatRate);
}
2.7 Separate parts of the code into logical groups eg.
//correct
int CalculateStock()
{
var fakeValue = 12;
fakeValue += 12;
var fakeProduct = new Product();
var result = fakeProduct.Count + fakeValue;
return result;
}
//avoid
int CalculateStock()
{
var fakeValue = 12;
fakeValue += 12;
var fakeProduct = new Product();
var result = fakeProduct.Count + fakeValue;
return result;
}
2.8 In LINQ use following to check bool values eg:
//correct
If(products.Any())
{
}
//incorrect
If(products.Count() > 0 )
{
}















