Do you like languages that let you put the "then" before the "if"?

Posted by Matt Hamilton on Stack Overflow See other posts from Stack Overflow or by Matt Hamilton
Published on 2010-04-30T05:40:37Z Indexed on 2010/04/30 5:47 UTC
Read the original article Hit count: 254

Filed under:
|

I was reading through some C# code of mine today and found this line:

if (ProgenyList.ItemContainerGenerator.Status != System.Windows.Controls.Primitives.GeneratorStatus.ContainersGenerated) return;

Notice that you can tell without scrolling that it's an "if" statement that works with ItemContainerGenerator.Status, but you can't easily tell that if the "if" clause evaluates to "false" the method will return at that point.

Realistically I should have moved the "return" statement to a line by itself, but it got me thinking about languages that allow the "then" part of the statement first. If C# permitted it, the line could look like this:

return if (ProgenyList.ItemContainerGenerator.Status != System.Windows.Controls.Primitives.GeneratorStatus.ContainersGenerated);

This might be a bit "argumentative", but I'm wondering what people think about this kind of construct. It might serve to make lines like the one above more readable, but it also might be disastrous. Imagine this code:

return 3 if (x > y);

Logically we can only return if x > y, because there's no "else", but part of me looks at that and thinks, "are we still returning if x <= y? If so, what are we returning?"

What do you think of the "then before the if" construct? Does it exist in your language of choice? Do you use it often? Would C# benefit from it?

© Stack Overflow or respective owner

Related posts about programming-languages

Related posts about c#