我有字符串类名,我想将其转换为类引用
if (System.Windows.Forms.Application.OpenForms[row.Cells[0].Value.ToString()] != null)
{
(System.Windows.Forms.Application.OpenForms[row.Cells[0].Value.ToString()] as PC_01).accept();
}
我想使用字符串"PC_01"
而不是类PC_01
。
答案 0 :(得分:1)
尝试使用Activator
课程。见http://msdn.microsoft.com/en-us/library/vstudio/System.Activator%28v=vs.110%29.aspx
答案 1 :(得分:0)
如果您想将对象的类型表示为字符串,可以在Type类的帮助下完成,并使用dynamic来调用此实例的方法。
object obj = System.Windows.Forms.Application.OpenForms[row.Cells[0].Value.ToString()];
Type t = Type.GetType("myNamespace.PC_01, myAssembly");
if (obj.GetType() == t)
{
((dynamic)obj).accept();
}