On Tuesday, 10 December 2013 at 18:58:01 UTC, Suliman wrote:
Maybe it would be possible to get some good idea from next version of C# It's only ideas about next version, but new future maybe next: http://damieng.com/blog/2013/12/09/probable-c-6-0-features-illustrated


I really like the "Inline declarations for out params" feature(number 9). The example given in the article is kind of lame, but combined with conditionals it can be a really big improvement:

     if(int.TryParse(a,out int b)){
         //some code that uses `b`
     }

If this works as I expect it to work, `b` will only be defined in the scope of the `if` statement. If we had to declare `b` beforehand, it would have polluted the surrounding scope, when not only we don't use it after the `if` but it doesn't have a meaningful value if `TryParse` yields `false`!

Also - it allows using type inference when declaring those out parameters, which is always a good thing.


This feature can be compared to D's declare-in-if syntax, but they are not equivalent. Consider:

     if(int b=a.tryParse!int()){
         //some code that uses `b`
     }

if `a` is "0" we won't enter the then-clause even though we managed to parse. This is why we don't have this `tryParse` function in D...

Reply via email to