C# – Understanding Exception Handling

Wrap try …… catch around code:

  • That you are calling into you did not write
  • Code that accesses external recources
  • Code that accepts input from outer sources
try{

}catch(SpecificException ex){
//catch more specific exceptions first
//more general list
}catch(Exception ex){
//log it
//swallow it
//re-throw it
}finally{
//optional...clean up
}

 

Advertisements

C# – First Pass at the Separation of Concern Principle

Separate concers at the mitigate the impact of change on a software system.

Common “concerns”:

  • Presentation logic
  • Business / Domain logic
  • Persistence logic

Recommendation: Seperate concerns into projects within a given solution.

Naming convention:

MyApplication(Solution name)

  • MyApplication.Presentation(.Web, etc. presentation project)
  • MyApplication.Domain(domain/business rules project)
  • MyApplication.Persistence(.Data, .DB persistence project)

C# – Creating GUIDs and Working with Enumerations

GUID means Globally Unique Identifier

System.GUID newGUID = System.Guid.NewGuid();

Working with Enumerations

A data type accepting only enumerated values that you define.

Strongly typed, ridding you app  of “magic strings”.

public enum Occupation{
  Doctor,
  Lawyer,
  IndianChef
}
Occupation whatIDo = Occupation.IndianChef;

Occupation occupation;

if(Enum.TryParse("Doctor", out occupation)){
  ......
}

C# – Looping with the Foreach Iteration Statement

More elegant way to iterate collections

In Visual Studio, after typing foreach, press tab button twice


foreach [tab] [tab]


foreach(Car car in cars){

  result += car.Make;

}

Implicitly Typed Local Variables with the var Keyword

(Applies to locally scoped variable declarations)

Compiler is smart enough to figure out the data type when you initialize the variable.

Become increasingly important because sometimes its difficult to know what the data type is supposed to be(LinQ)

int hitPoints = 0;

//........... is equivalent of.................

var heroName = "Pentagorn";

var Cars = new List(){.....}

Rules:

  1. Must initialize the variable
  2. Variable is permanently set to implicit data type.
  3. Can not be used for a PUBLIC property/variable.

C# – Working with the Dictionary

Dictionary allows you to use a key to access a member of the collection.

Think: Webster’s dictionary… the word (key) then the definition (instance of a given type)

Key is anything that is meaningful in your system.

Key must be unique.

TKEY => type of the key

TValue => type of the value

Dictionary cars = new Dictionary();

cars.Add("V123", new Car{Make="BMW", Model="528i", Year=2010});

cars.Add("V132", new Car{Make="BMW", Model="575", Year=2015});

cars.Add("V321", new Car{Make="BMW", Model="533i", Year=2012});

cars.ElementAt(2).Key // returns V132

cars.Element.(2).Value // Return the Car object in the second position

//Better way to access Dictionary

Car v2;

if(cars.TryGetValue("V132", out v2){

result += v2.Year;

}

//Remove

if(cars.Remove("V132")){

result += "Successfully removed car";

}

 

« Older Entries Recent Entries »