一个有趣的问题, C#中有没有办法使用一个string的值作为一个数据类型来动态声明变量?
如题, 比如:
string strA = "InterfaceA"; //or string strA = "InterfaceB";
然后用strA的值即InterfaceA来声明一个类型为InterfaceA的接口:
InterfaceType ifA=xxx.GetInterface(strA);
就是让InterfaceType动态地跟着strA的值变, 若strA=="InterfaceB", 则InterfaceType==typeof(InterfaceB).
C#中有办法这样做吗?
PS: 这样做的目的是为了取代一个Python程序.
Python中可以这样做:
interfaceName="InterfaceA" #or interface="InterfaceB"
someInterface=xxx.GetInterface(interfaceName)
因为Python是弱类型语言, 会根据返回接口的类型自动将someInterface赋值.