我知道如何测试一个对象,看它是否是一个类型,使用IS关键字例如测试一个对象是不是一个类型
if (foo is bar)
{
//do something here
}
你怎么测试它不是“吧”?我似乎,但无法找到与是测试阴性结果工作的关键词。
顺便说一句 - 我有一个可怕的感觉,这是SOOOO明显,所以道歉提前...
我知道如何测试一个对象,看它是否是一个类型,使用IS关键字例如测试一个对象是不是一个类型
if (foo is bar)
{
//do something here
}
你怎么测试它不是“吧”?我似乎,但无法找到与是测试阴性结果工作的关键词。
顺便说一句 - 我有一个可怕的感觉,这是SOOOO明显,所以道歉提前...
if (!(foo is bar)) {
}
没有特定的关键字
if (!(foo is bar)) ...
if (foo.GetType() != bar.GetType()) .. // foo & bar should be on the same level of type hierarchy
这是'神秘而怪异'还是利用语言特征? – 2009-01-07 04:18:12
你应该清楚你是否想测试的对象是正是从某种类型某种类型或分配。例如:
public class Foo : Bar {}
而且假设你有:
Foo foo = new Foo();
如果你想知道FOO是否没有酒吧(),那么你可以这样做:
if(!(foo.GetType() == tyepof(Bar))) {...}
但如果你想确保foo不是来自Bar,那么简单的检查就是使用as关键字。
Bar bar = foo as Bar;
if(bar == null) {/* foo is not a bar */}
我喜欢foo,因为如果它是一个Bar,你肯定会想用foo做点什么,所以你也可以为这种情况编写代码。 – 2009-01-07 04:17:30
这是一个很好的问题。如果你已经尝试过但并不明白,这并不明显。也就是说,你可能想看看一些C#语法教程,他们将所有这些东西拼出来,还有你还没有问过自己的东西。 – 2009-01-07 04:16:04