在Actionscript中,您可以让变量保存对类类型的引用,然后将类的实例与变量is
进行比较。例如:
var a:Foo = new Foo();
var type:Class = Foo;
if(a is type){ //this is true
//do something
}
你能用C#做类似的事吗?或者“is”关键字是否必须后跟一个类?
答案 0 :(得分:10)
如果要针对变量类型进行测试,请参阅.NET框架中的Type.IsInstanceOfType方法
答案 1 :(得分:1)
也可以跟接口名称。
答案 2 :(得分:1)
.NET 2010 beta 2:针对FrameWork 4,3.5(“完整”FrameWork版本,而不是“Client Profile”版本)进行测试
鉴于:
public class Foo
{
public Foo() {}
}
运行时执行:
Foo myFoo = new Foo();
Console.WriteLine(myFoo is Foo);
Console.WriteLine(typeof(Foo).IsInstanceOfType(myFoo));
Console.WriteLine语句都将“True”打印到控制台窗口。
为什么你认为这会在控制台窗口打印'False:
Console.WriteLine(myFoo.GetType().IsInstanceOfType(typeof(Foo)));
答案 3 :(得分:0)
数据类型是对象,因此以下两个在C#
中都有效if (value is String) ...
if (value is ExampleClass) ...