c# programming interview questions answers and explanations