Lazy Evaluation not so Lazy?
问题 I've always heard C# uses lazy evaluation. So for certain code like, if (true || DoExpensiveOperation() will return true without executing DoExpensiveOperation() . On an interview test I saw the following questions, static bool WriteIfTrue(bool argument) { if (argument) { Console.WriteLine("argument is true!"); } return argument; } static void Main() { // 1 0 0 1 WriteIfTrue((WriteIfTrue(false) & WriteIfTrue(true)) || WriteIfTrue(true)); // 1 1 0 1 WriteIfTrue((WriteIfTrue(true) ||