这很好用:
protected void txtTest_Load(object sender, EventArgs e)
{
if (sender is TextBox) {...}
}
有没有办法检查发件人是不是TextBox,某种等价的!= for“是”?
请不要建议将逻辑移到ELSE {}:)
答案 0 :(得分:151)
这是一种方式:
if (!(sender is TextBox)) {...}
答案 1 :(得分:7)
你不能在is
关键字之前做更详细的“旧”方式:
if (sender.GetType() != typeof(TextBox)) { // ... }
答案 2 :(得分:3)
答案 3 :(得分:2)
两种众所周知的方法是:
1)使用IS运算符:
if (!(sender is TextBox)) {...}
2)使用AS运算符(如果您还需要使用textBox实例,则非常有用):
var textBox = sender as TextBox;
if (sender == null) {...}
答案 4 :(得分:-1)
试试这个。
var cont= textboxobject as Control;
if(cont.GetType().Name=="TextBox")
{
MessageBox.show("textboxobject is a textbox");
}
答案 5 :(得分:-1)
如果您使用继承:
public class BaseClass
{}
public class Foo : BaseClass
{}
public class Bar : BaseClass
{}
... 无效
if (obj?.GetType().BaseType != typeof(Bar)) { // ... }
或
if (!(sender is Foo)) { //... }