
derivedClass.GetType().isinstanceOfType(typeof(BaseClass)) baseClass.GetType().isinstanceOfType(typeof(DerivedClass)) myClass.GetType().isinstanceOfType(typeof(MyClass))
并且所有人都评价为假.
任何帮助表示赞赏.
@H_419_4@解决方法 只有当涉及的对象(derivedClass,baseClass和myClass)是对象的实例或未记录的RuntimeType对象(注意 Type是抽象的)时,这3行中的每一行都将返回true,因此例如以下将导致true声明:var myObject = new object();myObject.GetType().isinstanceOfType(typeof(Console));myObject = typeof(Object);myObject.GetType().isinstanceOfType(typeof(Console));
请注意,使用的类型(在本例中为Console)无关紧要,并且对语句的结果没有影响.
为什么?
IsInstanceOfType的文档告诉我们,如果传入的对象是当前类型的实例,它将返回true,例如,如果myForm是一个派生自Form的类,则以下语句将返回true,否则它将返回false.
typeof(Form).isinstanceOfType(myForm);
在你的情况下,myForm实际上是typeof(BaseClass),它是未记录的类型RuntimeType(派生自Type),因此如果这个未记录的类型恰好从提供的类型派生,你只会返回true – 这是不太可能是理想的行为.
我应该用什么呢?
您可能会追溯的是is keword,如果提供的对象是给定类型的实例,则返回true
derivedClass is BaseClassbaseClass is DerivedClassmyClass is MyClass@H_419_4@ @H_419_4@ @H_419_4@ @H_419_4@ 总结
以上是内存溢出为你收集整理的c# – 什么时候是obj.GetType().IsInstanceOfType(typeof(MyClass))是真的吗?全部内容,希望文章能够帮你解决c# – 什么时候是obj.GetType().IsInstanceOfType(typeof(MyClass))是真的吗?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)