Using Unsigned Primitive Types
<p>Most of time we represent concepts which can never be less than 0. For example to declare length, we write:</p>

<pre><code>int length;
</code></pre>

<p>The name expresses its purpose well but you can assign negative values to it. It seems that for some situations, you can represent your intent more clearly by writing it this way instead:</p>

<pre><code>uint length;
</code></pre>

<p>Some disadvantages that I can think of:</p>

<ul>
<li>unsigned types (uint, ulong, ushort) are not CLS compliant so you can't use it with other languages that don't support this</li>
<li>.Net classes use signed types most of the time so you have to cast</li>
</ul>

<p>Thoughts?</p>
