.ToString выдает ошибку, но Convert.ToString работает нормально, почему?

1

в моем коде c# я пытаюсь писать как

 public string instancePath = (HttpContext.Current.Application["InstancePath"]).ToString();

Но когда я создаю объект этого класса, тогда он не работает, он выдает исключение. Но когда я использую public string instancePath = Convert.ToString(HttpContext.Current.Application["InstancePath"]); он отлично работает, почему convert.ToString() работает insted of ToString()? любая помощь будет оценена

заранее спасибо

Теги:

2 ответа

3
Лучший ответ

ToString() должен существовать для вызова метода экземпляра на нем. Он не обрабатывает null значение. Это означает, что на объекте предполагается, что объект не является нулевым. Однако, когда мы используем Convert.ToString(obj) он также обрабатывает нулевые значения. Он возвращает пустой, если он равен нулю.

  • 0
    спасибо за повтор
2

Пытаться

string str = HttpContext.Current.Application["InstancePath"] as string;
  • 0
    Я отмечаю, что хотя другой ответ более непосредственно касается конкретного вопроса (т. Е. «Почему эти две реализации отличаются по поведению?»), Этот ответ, по-видимому, более непосредственно касается того, что, вероятно, является наилучшим способом реализации желаемого поведения (т. Е. Потому что значение, вероятно, уже является экземпляром string , при условии, что оно не равно нулю)
  • 0
    Спасибо @PeterDuniho
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню