title: C# Interlocked Exchange
body: <p>I have a bit of my game which looks like this:</p>
  
  <pre><code>public static float Time;
  
  float someValue = 123;
  Interlocked.Exchange(ref Time, someValue);
  </code></pre>
  
  <p>I want to change Time to be a Uint32; however, when I try to use <code>UInt32</code> instead of <code>float</code> for the values, it protests that the type must be a reference type. <code>Float</code> is not a reference type, so I know it's technically possible to do this with non-reference types. Is there any practical way to make this work with <code>UInt32</code>?</p>