Denis Koroskin wrote: >> int i; >> >> for(int j = foo(); j > 0; j--) i = bar(j); // what if foo() returns >> -5? > > This code doesn't compile in C# and fails with the following error at > first attempt to use 'i': > > error CS0165: Use of unassigned local variable 'i'
Ah, so C# is overly conservative. That's another option, of course. It has the advantage of always knowing at compile time that you're not reading an uninitialized value. The disadvantage is that C# will often throw out the baby with the bath water. The example program may be perfectly valid if 'foo' always returns positive. -- Michiel Helvensteijn
