2016-10-07 2 views
-8

Мне нужна помощь, пытаясь найти, является ли выбранный цвет нулевым.Как я могу проверить, соответствует ли мое значение цвета Null

Потому что, если я не выбираю цвет, я получаю ошибку

Это код, который я получаю сообщение об ошибке с:

private void btnreturn_Click(object sender, RoutedEventArgs e) 
{ 
    int gettext; 
    int.TryParse(txtcount.Text, out gettext); 

    Color Colorpicker; 

    //this is where I am getting my error and I need to 
    //check to see if the selected colour is not null before taking its value 
    Colorpicker = (Color)colorpicker.SelectedColor; 

    MainWindow win2 = new MainWindow(gettext, Colorpicker); 
    win2.Show(); 
    Close(); 
} 
+1

Вы имеете в виду «Colorpicker == null»? – EJoshuaS

+0

Вам нужно создать 'новый ColorPicker (...)'. 'Цвет' не может быть нулевым, но' ColorPicker' может. – CSharpie

+3

Это делается с помощью простого поиска в Google. Прежде чем задавать вопросы, вы должны исследовать их. – deathismyfriend

ответ

0

кажется, что, когда вы не выбираете цвет из colorpicker, что colorpicker.SelectedColor является null, и вызывает у вас ошибка.


Вы можете проверить это в вашем коде, например, так:

private void btnreturn_Click(object sender, RoutedEventArgs e) 
{ 
    int gettext; 
    int.TryParse(txtcount.Text, out gettext); 

    Color Colorpicker; 

    // Check if the SelectedColor is not null, and do stuff with it 
    if (colorpicker.SelectedColor != null) 
    { 
     Colorpicker = (Color)colorpicker.SelectedColor; 

     MainWindow win2 = new MainWindow(gettext, Colorpicker); 
     win2.Show(); 
     Close(); 
    } 
    else 
    { 
     // You didn't select a color... do something else 
    } 
} 

Side-примечание: если вы используете C# 6, и вы хотите быть уверены, что ваш объект colorpicker нет null, в вашем if проверка - вы можете использовать colorpicker?.SelectedColor также. Обратите внимание на использование ?, который проверяет, что базовый объект не имеет значения null перед проверкой его свойства.


Я хотел бы также предложить именования переменных немного более четко и осмысленно ...

Например, ваша Color Colorpicker; декларация переменной. Не лучше ли это для Color selectedColor;?

Надеюсь, это поможет!

+0

Любые объяснения по нисходящему, ребята? Я бы хотел улучшить свой пост, если это возможно :) –

+0

Спасибо. это очень помогло мне извините за отсутствие информации о моем коде. Я новичок на этом сайте и не был уверен точно, что ожидалось в сообщении –

+0

Не беспокойтесь @NathanCooley! Рад, что это помогло. Я также добавил примечание о проверках C# 6 для null - может не полностью примениться к этому сценарию, но он может помочь в будущем. Позор о нисходящем из кого угодно, без объяснения, хотя ... Счастливое кодирование! :) –

-1
If (Colorpicker != null) 
{ 
    //Do code 
} 
else 
{ 

} 

Проверяется ли не «Colorpicker» равный нулю.

не могли бы оставить комментарий, так что если это не то, что вам нужно Я извиняюсь C:

+0

Извините, @Hypyx, и я знаю, что ваш ответ должен быть скорее комментарием (и я получаю, что вы не можете их публиковать), но есть так много проблем с кодом OP, как есть. Вероятно, лучше всего получить больше идеи о лежащей в основе проблеме, а не просто бросать «нуль» в качестве предложения. –

+0

А, я могу прокомментировать здесь gg. Является ли нижний регистр «colorpicker» Telerik RadColorPicker? – Hypyx

-1

бы что-то вроде этой работы? перед его попыткой добавьте его значение null. или инициализировать переменную с другим значением.

private void btnreturn_Click(object sender, RoutedEventArgs e) 
{ 
    int gettext; 
    int.TryParse(txtcount.Text, out gettext); 




Color Colorpicker; 

     //this is where i am getting my error and i need to 
     //check to see if the selected colour is not null before taking it's value 
    if(colorpicker.SelectedColor != null){ 
     Colorpicker = (Color)colorpicker.SelectedColor; 
    MainWindow win2 = new MainWindow(gettext, Colorpicker); 
    win2.Show(); 
    Close(); 
    } else { 
     //do something else 
    } 

} 

Edit: согласно @Geoff Джеймс отлитого в (цвет) удаляется

+1

Алекс, бросая «нуль», чек - это «нет», чтобы решить проблему. Код не будет компилироваться. –

+0

Я попытался запустить это в своем коде, но он даже не запустит оператор if, поскольку он все еще говорит об ошибке «Необработанное исключение типа« System.InvalidOperationException »произошло в mscorlib.dll Дополнительная информация: Nullable object должен иметь значение «. –

+0

@ Geoff James, вы говорите, что все же вы отправили тот же код, что и я. –

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