2013-09-12 12 views
-3

Я получил значение null в своем коде, что я не совсем понимаю. Вот мой код:C# Значение WPF равно null?

public int[] Data 
     { 
      get 
      { 
       return null; 
      } 
      set 
      { 
       for (int i = 0; i < 256; i++) 
       { 
        if (null != value) 
        { 
         _histogram[i] = value[i]; 
        } 
       }   

       RedrawHistogram(); 
      } 
     } 

Ошибка возникает при

if (null != value) 
        { 
         _histogram[i] = value[i]; 
        } 

где value является null! Мне интересно, что здесь происходит? Даже если я поставил условие выше, он все равно не работает? Благодарю.

ответ

3

_histogram - это то, что null, а не value. Вам нужно будет инициализировать его как int[] в определенный момент времени. Возможно, в каждом вызове set, возможно, один раз в конструкторе, неясно, что желательно в вашем случае.

+0

Я вижу. Но _histogram фактически инициализируется как _histogram = new int [256]; в конструкторе, как я заметил. И я еще не нашел, где он был разрушен. –

+0

На самом деле это значение было равно null. Гистограмма в int [256]. Теперь я довольно смущен. –

+0

@NickXTsui Ну, вы можете отлаживать код, чтобы убедиться, но с учетом кода, который вы предоставили, это почти * невозможно для 'value', чтобы быть тем, что бросает исключение нулевой ссылки. Вы в значительной степени должны сознательно пытаться, чтобы это было так. Для того, чтобы '_histogram' был null, просто подразумевал бы, что код, который вы не показывали, является ошибкой, который, пока вы не покажете, что код и не является ошибкой, является наиболее вероятным вариантом. – Servy

Смежные вопросы