C# 尝试动态创建对象的实例
正在获取以下错误 错误1无法将类型“object”隐式转换为 “CSV\u OOP\u Convert.FileConverter”。存在显式转换(正在进行) 你错过了一场比赛 cast?\server\UserShares\DBell\VSC\CSV\u OOP\u Convert\CSV\u OOP\u Convert\Form1.cs 44 39 CSV\u OOP\u Convert cmbConversionAlgorithm包含我希望创建实例的类的正确名称 当我正常创建它时,它工作得很好C# 尝试动态创建对象的实例,c#,oop,reflection,C#,Oop,Reflection,正在获取以下错误 错误1无法将类型“object”隐式转换为 “CSV\u OOP\u Convert.FileConverter”。存在显式转换(正在进行) 你错过了一场比赛 cast?\server\UserShares\DBell\VSC\CSV\u OOP\u Convert\CSV\u OOP\u Convert\Form1.cs 44 39 CSV\u OOP\u Convert cmbConversionAlgorithm包含我希望创建实例的类的正确名称 当我正常创建它时,它工作得
CSV_OOP_Convert.TFConverter tfc = new CSV_OOP_Convert.TFConverter();
激活器返回一个对象 试着这样做:
String className = cmbConversionAlgorithm.Text;
string namespaceName = "CSV_OOP_Convert";
Object myObj =Activator.CreateInstance(Type.GetType(namespaceName + "." + className));
ConvertFile((FileConverter)myObj);
返回类型为object
的对象,因此它是完全不特定的类型。为了将其分配给更特定类型的变量,需要进行显式类型转换:
FileConverter myObj = (FileConverter)Activator.CreateInstance(type);
将结果强制转换为FileConverter类
var myObj =Activator.CreateInstance(Type.GetType(namespaceName + "." + className)) as FileConverter;
CreateInstance
返回一个对象
,您需要强制转换:FileConverter myObj=(FileConverter)Activator.CreateInstance(…)
4等于答案。。。它是重复的:):)
var myObj =Activator.CreateInstance(Type.GetType(namespaceName + "." + className)) as FileConverter;