Why use (int?) null when adopt object intializer?
<pre><code>using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class User
    {
        public int? Age { get; set; }
        public int? ID { get; set; }
    }

    class Program
    {
        static void Main(string[] args)
        {
            User user = new User();
            user.Age = null;        // no warning or error
            user.ID  = (int?)null;  // no warning or error

            string result = string.Empty;
            User user2 = new User
                             {
                Age = string.IsNullOrEmpty(result) ? null : Int32.Parse(result),
                // Error    1   Type of conditional expression cannot be determined 
                // because there is no implicit conversion between '&lt;null&gt;' and 'int'   
                // ConsoleApplication1\ConsoleApplication1\Program.cs   23  71  ConsoleApplication1

                ID = string.IsNullOrEmpty(result) ? (int?)null : Int32.Parse(result) // // no warning or error
                             };
        }
    }
}
</code></pre>

<p>Question:</p>

<p>Why the following line doesn't work?</p>

<pre><code>Age = string.IsNullOrEmpty(result) ? null : Int32.Parse(result)
</code></pre>

<p>// Correction one is</p>

<pre><code>Age = string.IsNullOrEmpty(result) ? (int?) null : Int32.Parse(result)
</code></pre>

<p>Why the following line work?</p>

<pre><code>user.Age = null;        // no warning or error
</code></pre>
