我需要这样投射:
/* Cast Brakets */
(Type.FromString(mystring))myObject.doSomething();
我需要获取我在运行时强制转换的类型,在这种特殊情况下,我不能使用通用的“T”类或方法。
虽然如果你有办法在运行时更改T-generic Type(不再调用类或方法),这也会有所帮助。
以下是我的问题的更具体版本:
我有一个List comboList,我的GUI可以在运行时添加新的ComboBox,这些将自动放入comboList。现在,comboList中的每个ComboBox都有数据库表。我在每个ComboBox的.Tag字段中添加了每个数据库类的名称
(例如:combobox_users.Tag =“users_databaseClass”)
现在在运行时我需要转换为users_databaseClass类型,但在我看来这是不可能的。看起来根本不可能在运行时将Type放入cast-bracket中以实际转换该类型。
非常感谢帮助,我已经尝试了好几天。
答案 0 :(得分:0)
要使用古怪类型的属性和方法,您需要对该类型的引用(例如Type.GetType("string_name_of_type")
),并且您需要一些非常酷的反映(例如theType.GetMethod("method_name")
)。你的表现不会很好。见http://msdn.microsoft.com/en-us/library/system.type.getmethod(v=vs.71).aspx