如果将实际对象类型分配给接口类型,是否可以获取它?

时间:2010-12-19 16:57:50

标签: c# interface

我有一个接口ITransaction和Class1,Class2都实现了这个接口。在运行时,我将Class1或Class2的对象分配给ITransaction的引用。

ITransaction itransaction = new Class1();

ITransaction itransaction = new Class2();

是否可以知道分配给itransaction引用的实际类型,可能使用反射或其他东西?

2 个答案:

答案 0 :(得分:6)

您可以在接口实例上调用GetType()以获取有效类型。

(请注意,这可能不会返回您对COM和MarshalByRefObject实例的远程接口的期望,但这是一个不同的主题。)

答案 1 :(得分:3)

你可以写

if (itransaction is Class2)