Ответ 1
Это один из способов:
if (!(sender is TextBox)) {...}
Это прекрасно работает:
protected void txtTest_Load(object sender, EventArgs e)
{
if (sender is TextBox) {...}
}
Есть ли способ проверить, является ли отправитель НЕ текстовым, какой-то эквивалент!= для "is"?
Пожалуйста, не предлагайте переместить логику в ELSE {}:)
Это один из способов:
if (!(sender is TextBox)) {...}
Не могли бы вы также сделать более подробный "старый" способ до ключевого слова is
:
if (sender.GetType() != typeof(TextBox)) { // ... }
Два известных способа сделать это:
1) Использование оператора IS:
if (!(sender is TextBox)) {...}
2) Использование AS-оператора (полезно, если вам также нужно работать с экземпляром textBox):
var textBox = sender as TextBox;
if (sender == null) {...}
Попробуйте это.
var cont= textboxobject as Control;
if(cont.GetType().Name=="TextBox")
{
MessageBox.show("textboxobject is a textbox");
}
Если вы используете наследование типа:
public class BaseClass
{}
public class Foo : BaseClass
{}
public class Bar : BaseClass
{}
... Нулевая устойчивость
if (obj?.GetType().BaseType != typeof(Bar)) { // ... }
или
if (!(sender is Foo)) { //... }