Convert.ToString ведет себя по-разному для «NULL объекта» и «NULL строки»

У меня фу (object) и foo2 (string) в консольном приложении C #. Код 2 создает исключение, в то время как Код 1 работает нормально.

Не могли бы вы объяснить, почему он так себя ведет (со ссылкой на MSDN)?

// Код 1

object foo = null;
string test = Convert.ToString(foo).Substring(0, Convert.ToString(foo).Length >= 5 ? 5 : Convert.ToString(foo).Length);

// Код 2

string foo2 = null;
string test2 = Convert.ToString(foo2).Substring(0, Convert.ToString(foo2).Length >= 5 ? 5 : Convert.ToString(foo2).Length);

Ответы на вопрос(3)

Ваш ответ на вопрос