【发布时间】:2015-02-10 12:05:14
【问题描述】:
在编写以下代码时,它们有什么区别:
MyClass parcel;
for (int i = 0; i < 100000000; i++) parcel = (MyClass)Activator.CreateInstance(typeof(MyClass));
for (int i = 0; i < 100000000; i++) parcel = Activator.CreateInstance<MyClass>();
我预计后者会快得多,因为实际类型在编译时已经知道,但我没有发现任何差异。在我的机器上,两者都在大约 9 秒内工作。那么考虑到内部使用的步骤,它们有什么区别?
【问题讨论】:
-
和我看到的一样,但第二个更优雅
-
通用版本只是为您执行演员表。这是为了方便。
-
那很糟糕,我希望我能用后者获得一些时间......不过谢谢
-
如果您想加快速度,请使用为您实例化类型的表达式树生成 Func
。
标签: c# createinstance