SqlParameter com o valor padrão definido como 0 não funciona como esperado

Eu estava fazendo algo assim:

SqlParameter param = new SqlParameter("@Param", 0) { SqlDbType = SqlDbType.Int };

private void TestParam(SqlParameter param) {
   string test = param.Value.ToString();  // Getting NullReferenceException here
}

Mas eu paro de receber a exceção quando a coloco assim:

SqlParameter param = new SqlParameter("@Param", SqlDbType.Int)  { Value = 0 };

private void TestParam(SqlParameter param) {
    string test = param.Value.ToString();  // Everything OK
}

Alguém pode me dizer por que SqlParameter assume que 0 é igual a nul

Editar MSDN Explica isso aqui:SqlParameter Constructor

questionAnswers(2)

yourAnswerToTheQuestion