C # .Net 3.5 Я получаю список изображений, создаю копию, предоставляю пустой список, создаю экземпляр xaml Dialog с событием OnNameChanged, равным Action<ILMWorkOrderImage>
. Следующий код создает, но во время выполнения выдает исключение нулевой ссылки во втором операторе, присваивании m_OriginalList. Если я пропущу это, в следующем операторе будет сгенерировано исключение нулевой ссылки, простое назначение нового списка! На эти две переменные ссылаются в анонимном методе, который обрабатывает событие OnNameChanged. Если я определю m_OriginalList и m_WithNameChanges как переменные-члены, все будет хорошо. Я обычно использую локальные переменные в моих анонимных методах; Вы видите причину, по которой это не сработает в этот раз?
List<ILMWorkOrderImage> workOrderImages = wo.GetImages( );
// Copy the list for comparison later
List<ILMWorkOrderImage> m_OriginalList = new List<ILMWorkOrderImage>( workOrderImages );
List<ILMWorkOrderImage> m_WithNameChanges = new List<ILMWorkOrderImage>( );
AddPicturesDialog dlg2 = new AddPicturesDialog( context, workOrderImages );
dlg2.OnNameChanged += ( ILMWorkOrderImage _ChangedWOI ) =>
{
if ( m_OriginalList.Contains( _ChangedWOI ) && !m_WithNameChanges.Contains( _ChangedWOI ) )
{
m_WithNameChanges.Add( _ChangedWOI );
}
};
if ( true == dlg2.ShowDialog( ) )...