我在接受采访时被问到了上述问题.你能解释一下这些差异吗?(性能 - 内存 - 使用 - 何时使用哪个?)
谢谢,
二崁
可能简单但无法弄清楚.我在运行时加载程序集并浏览一些类并为其属性生成输入控件.要在运行时创建对象的实例,我使用:
object o = PropertyType.GetConstructor(BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public, null, Type.EmptyTypes,null).Invoke(null);
Run Code Online (Sandbox Code Playgroud)
它适用于类类型.当类型是数组时,我使用
object o = PropertyType.Type.GetConstructor(new Type[] { typeof(int) }).Invoke(new object[] { 0 });
Run Code Online (Sandbox Code Playgroud)
这也很好.但是当涉及到字符串类型或值类型时,GetConstructor.Invoke不起作用.我也尝试过Activator.CreateInstance也没用.