元ネタはEric Lippertのブログです。コードは少し改変していますが、言っていることは同じです。 A dynamic definite assignment puzzle A dynamic definite assignment puzzle, part 2 class Program { static void Main() { object obj = GetObject(); // ★ string str; if ((obj != null) && ((str = GetString()) != null)) // ◆ { System.Console.WriteLine(obj + str); // ▲ } } static object GetObject() { return "hello"; } static string GetString() { return