compile time error vs runtime error in c#