Why can't we write Console.Writeline() in if statement?

Why can't we write Console.Writeline() in if condition in C#? But we can write printf() statement in if condition in C?

Jon Skeet
people
quotationmark

In C, the return type of printf is int - the number of characters written.

Also in C, an if condition can be any non-void data type, basically.

Compare that with C# and .NET, where Console.WriteLine has a return type of void, and the condition in an if statement must have a type of bool (or be implicitly convertible to bool). (So even if Console.WriteLine returned int, you'd still need something like if (Console.WriteLine(...) != 0) in order to make it valid.)

What do you want the condition to actually check? If Console.WriteLine fails for some reason, it'll throw an exception anyway...

people

See more on this question at Stackoverflow