 <p>Code + Unit test which will tell you whether a boxed or unboxed object is its default value. Also included generic version.</p> <pre><code> [Test] public void BoxedIntIsDefault() { Assert.That(IsDefault((object)0), Is.True); Assert.That(IsDefault((object)1), Is.False); Assert.That(IsDefault&lt;object&gt;(0), Is.True); Assert.That(IsDefault&lt;object&gt;(1), Is.False); } bool IsDefault(object obj) { return Equals(obj, GetDefault(obj.GetType())); } bool IsDefault&lt;T&gt;(T input) { return Equals(input, GetDefault(input.GetType())); } public static object GetDefault(Type type) { if (type.IsValueType) { return Activator.CreateInstance(type); } return null; } </code></pre>