Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <ul> <li>the <code>Reset()</code> method on <code>IEnumerator&lt;T&gt;</code> was a mistake (for iterator blocks, the language spec even <em>demands</em> that this throws an exception)</li> <li>the reflection methods that return arrays were, in Eric's view, <a href="http://blogs.msdn.com/ericlippert/archive/2008/09/22/arrays-considered-somewhat-harmful.aspx" rel="noreferrer">a mistake</a></li> <li>array covariance was and remains an oddity; at least in C# 4.0 / .NET 4.0 this is done correctly for <code>IEnumerable[&lt;T&gt;]</code></li> <li><code>ApplicationException</code> rather fell out of favor - was that a mistake?</li> <li>synchronized collections - a nice idea, but not necessarily useful in reality: you usually need to synchronize <em>multiple</em> operations (<code>Contains</code>, then <code>Add</code>), so a collection that synchronizes distinct operations isn't all that useful</li> <li>more use could have been made of the <code>using</code>/<code>lock</code> pattern - perhaps allowing them to share a re-usable (extensible?) syntax; you can simulate this by returning <code>IDisposable</code> and using <code>using</code>, but it could have been clearer</li> <li>iterator blocks : no simple way of checking arguments ahead-of-time (rather than lazily). Sure, you can write two chained methods, but that is ugly</li> <li>simpler immutability would be nice; C# 4.0 helps <a href="http://marcgravell.blogspot.com/2008/11/immutability-and-optional-parameters.html" rel="noreferrer">a bit</a>, but not quite enough</li> <li>no "this ref-type parameter cannot be null" support - although contracts (in 4.0) help with this somewhat. But syntax like <code>Foo(SqlConnection! connection)</code> (that injects a null-check / <code>throw</code>) would be nice (contrast to <code>int?</code> etc)</li> <li>lack of support of operators and non-default constructors with generics; C# 4.0 solves this a bit with <code>dynamic</code>, or you can enable it <a href="http://www.pobox.com/~skeet/csharp/miscutil/usage/genericoperators.html" rel="noreferrer">like this</a></li> </ul> <hr> <ul> <li>the iterator variable being declared <em>outside</em> the while in the <code>foreach</code> expansion, meaning that anon-methods/lambdas capture the single variable, rather than one per iteration (painful with threading/async/etc)</li> </ul>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    3. VO
      singulars
      1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload