Несмотря на то, что это старый вопрос и ОП попросил C #, я хотел бы поделиться решением VB.Net для тех, кто работает с VB.Net, а не с C #:
Dim myObj As Object = Nothing
Dim s As String = If(myObj, "").ToString()
myObj = 42
s = If(myObj, "").ToString()
К сожалению, VB.Net не разрешает? -Оператор после переменной, поэтому myObj? .ToString недопустим (по крайней мере, не в .Net 4.5, который я использовал для тестирования решения).Вместо этого я использую If, чтобы вернуть пустую строку, если myObj ist Nothing.Таким образом, первый Tostring-Call возвращает пустую строку, а второй (где myObj не является Nothing) возвращает «42».