Обнуление строки или любого типа, когда не известно возвращаемое значение?

#c# #servicemanager

#c# #servicemanager

Вопрос:

Каков наилучший способ обнулить элемент, если вы не знаете, каким может быть его значение? Я просматриваю объекты, которые могут быть любого типа из объекта. Как я могу выполнить приведение, если я не знаю, каким может быть возвращаемое значение?

 string viewValue
    = emop.Object[null, viewDetails.Columns[i].Property] != null
          ? emop.Object[null, viewDetails.Columns[i].Property].Value.ToString()
          : string.Empty;
  

Я подумал, что, возможно, было бы лучше привести все объекты в виде строки, но некоторые элементы не работают, говоря, что элемент равен нулю.

Комментарии:

1. Непонятно, зачем вам нужно преобразовывать их в строку, загружая память с двойными данными. в чем причина этого?

2. О, я думаю , вы также можете проверить, Value нет null (не только emop.Object[null, viewDetails.Columns[i].Property] ). Не делайте этого в одной строке, это достаточно запутанно…

3. Ваш код терпит неудачу, потому что вы проверяете, не равен ли элемент null, но затем не проверяете, не равно ли значение null .Value перед вызовом . toString() на нем.

4. @JoelC можете ли вы добавить пример, пожалуйста, JoelC с примером, чтобы я мог отметить вас спасибо

Ответ №1:

Без одобрения вашего преобразования в строку для всех объектов, поскольку я не знаю, с какими данными вы работаете. Я считаю, что это исправило бы вашу фактическую ошибку.

 string viewValue
= emop.Object[null, viewDetails.Columns[i].Property] != null amp;amp; emop.Object[null, viewDetails.Columns[i].Property].Value != null
      ? emop.Object[null, viewDetails.Columns[i].Property].Value.ToString()
      : string.Empty;
  

Я добавил проверку not null для свойства .Value. В противном случае вызывается.toString() может вызывать нулевой объект.