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

Teb*_*ebo 2 c# interface

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

ITransaction itransaction = new Class1(); 要么

ITransaction itransaction = new Class2();
Run Code Online (Sandbox Code Playgroud)

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

Luc*_*ero 6

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

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