Подтвердить что ты не робот

Проверьте, не является ли объект НЕ типа (!= Эквивалент для "IS" ) - С#

Это прекрасно работает:

    protected void txtTest_Load(object sender, EventArgs e)
    {
        if (sender is TextBox) {...}

    }

Есть ли способ проверить, является ли отправитель НЕ текстовым, какой-то эквивалент!= для "is"?

Пожалуйста, не предлагайте переместить логику в ELSE {}:)

4b9b3361

Ответ 1

Это один из способов:

if (!(sender is TextBox)) {...}

Ответ 2

Не могли бы вы также сделать более подробный "старый" способ до ключевого слова is:

if (sender.GetType() != typeof(TextBox)) { // ... }

Ответ 3

Два известных способа сделать это:

1) Использование оператора IS:

if (!(sender is TextBox)) {...}

2) Использование AS-оператора (полезно, если вам также нужно работать с экземпляром textBox):

var textBox = sender as TextBox;  
if (sender == null) {...}

Ответ 4

Попробуйте это.

var cont= textboxobject as Control;
if(cont.GetType().Name=="TextBox")
{
   MessageBox.show("textboxobject is a textbox");
} 

Ответ 5

Если вы используете наследование типа:

public class BaseClass
{}
public class Foo : BaseClass
{}
public class Bar : BaseClass
{}

... Нулевая устойчивость

if (obj?.GetType().BaseType != typeof(Bar)) { // ... }

или

if (!(sender is Foo)) { //... }