C# classes - Why so many static methods?
<p>I'm pretty new to C# so bear with me.</p>

<p>One of the first things I noticed about C# is that many of the classes are static method heavy. For example...</p>

<p>Why is it:</p>

<pre><code>Array.ForEach(arr, proc)
</code></pre>

<p>instead of:</p>

<pre><code>arr.ForEach(proc)
</code></pre>

<p>And why is it:</p>

<pre><code>Array.Sort(arr)
</code></pre>

<p>instead of:</p>

<pre><code>arr.Sort()
</code></pre>

<p>Feel free to point me to some FAQ on the net. If a detailed answer is in some book somewhere, I'd welcome a pointer to that as well. I'm looking for the definitive answer on this, but your speculation is welcome.</p>
