Activator.CreateInstance和使用表达式之间有明显的区别吗?

NibblyPig

使用此代码:

public static class ChocolateFactory<T>
{
    private static Func<int, int, T> Func { get; set; }

    static ChocolateFactory()
    {
        ChocolateFactory<EmergencyChocolate>.Func = (a, b) => new EmergencyChocolate(a, b);
    }

    public static T CreateChocolate(int a, int b)
    {
        return (T)Activator.CreateInstance(typeof(T), a, b);
        //return ChocolateFactory<T>.Func(a, b);
    }
}

如果我运行:

var myChocolate = ChocolateFactory<EmergencyChocolate>.CreateChocolate(1, 2);

两种创建方法之间有显着差异(一种被注释掉了)吗?Activator在代码方面更为简洁,但我知道它可能会更慢,但是我想知道是否在忽略其他任何内容。我也想知道这里是否有任何预编译的东西。

另外,如果不使用激活器,该方法的名称是什么?

Xanatos

如果使用,则不会进行静态检查Activator.CreateInstance编译器无法检查是否存在带有两个int参数的公共构造函数。

而且它可能更慢,因为它使用反射。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Activator.CreateInstance和Activator.CreateInstance <Type>之间的区别

来自分类Dev

具有Activator.CreateInstance的Singleton

来自分类Dev

具有动态类型的Activator.CreateInstance

来自分类Dev

如何测试使用Activator.CreateInstance(...)的方法?

来自分类Dev

无法使用GraphQL和.NET核心调用Activator.CreateInstance

来自分类Dev

创建表单实例 Activator.CreateInstance

来自分类Dev

Activator.CreateInstance()重载具有不同的返回类型

来自分类Dev

使用CoreCLR时Activator.CreateInstance抛出'System.MissingMethodException'

来自分类Dev

使用Activator :: CreateInstance的VisualStudio.DTE.Solution为null

来自分类Dev

无法使用Activator.CreateInstance创建COM类的实例

来自分类Dev

如何使用 Activator.CreateInstance 从系统 dll 加载类型?

来自分类Dev

为什么Assembly和Activator对于CreateInstance的行为有所不同

来自分类Dev

内部类和公共构造函数-为什么它与Activator.CreateInstance一起使用?

来自分类Dev

Activator.CreateInstance调用构造函数,但返回null

来自分类Dev

Activator.CreateInstance:无法从程序集中加载类型

来自分类Dev

Activator.CreateInstance创建类型T的值,而不是Nullable <T>

来自分类Dev

从TypeBuilder.CreateType返回的Type的Activator.CreateInstance引发ArgumentException

来自分类Dev

Activator.CreateInstance() overloads have different return types

来自分类Dev

如何填充由Activator.CreateInstance()方法创建的实例

来自分类Dev

从Activator.CreateInstance创建对象后,从接口访问方法

来自分类Dev

用已编译的lambda替换Activator.CreateInstance

来自分类Dev

`ActionFiliter` 中的依赖注入与调用 `Activator.CreateInstance()`

来自分类Dev

Playframework与Typesafe Activator-主要区别是什么

来自分类Dev

在带有playframework2.0的新项目中,什么是activator和activator-launch-1.2.10.jar文件?

来自分类Dev

这是一个错误吗?Activator.CreateInstance与私有访问修饰符构造函数?

来自分类Dev

带有Google App Engine的Activator Play Framework

来自分类Dev

Typesafe Activator:“运行”有效,但“启动”失败并显示错误

来自分类Dev

带有Activator的实例无法访问属性,反射

来自分类Dev

如何使用TypeSafe Activator运行Scala bash脚本?

Related 相关文章

  1. 1

    Activator.CreateInstance和Activator.CreateInstance <Type>之间的区别

  2. 2

    具有Activator.CreateInstance的Singleton

  3. 3

    具有动态类型的Activator.CreateInstance

  4. 4

    如何测试使用Activator.CreateInstance(...)的方法?

  5. 5

    无法使用GraphQL和.NET核心调用Activator.CreateInstance

  6. 6

    创建表单实例 Activator.CreateInstance

  7. 7

    Activator.CreateInstance()重载具有不同的返回类型

  8. 8

    使用CoreCLR时Activator.CreateInstance抛出'System.MissingMethodException'

  9. 9

    使用Activator :: CreateInstance的VisualStudio.DTE.Solution为null

  10. 10

    无法使用Activator.CreateInstance创建COM类的实例

  11. 11

    如何使用 Activator.CreateInstance 从系统 dll 加载类型?

  12. 12

    为什么Assembly和Activator对于CreateInstance的行为有所不同

  13. 13

    内部类和公共构造函数-为什么它与Activator.CreateInstance一起使用?

  14. 14

    Activator.CreateInstance调用构造函数,但返回null

  15. 15

    Activator.CreateInstance:无法从程序集中加载类型

  16. 16

    Activator.CreateInstance创建类型T的值,而不是Nullable <T>

  17. 17

    从TypeBuilder.CreateType返回的Type的Activator.CreateInstance引发ArgumentException

  18. 18

    Activator.CreateInstance() overloads have different return types

  19. 19

    如何填充由Activator.CreateInstance()方法创建的实例

  20. 20

    从Activator.CreateInstance创建对象后,从接口访问方法

  21. 21

    用已编译的lambda替换Activator.CreateInstance

  22. 22

    `ActionFiliter` 中的依赖注入与调用 `Activator.CreateInstance()`

  23. 23

    Playframework与Typesafe Activator-主要区别是什么

  24. 24

    在带有playframework2.0的新项目中,什么是activator和activator-launch-1.2.10.jar文件?

  25. 25

    这是一个错误吗?Activator.CreateInstance与私有访问修饰符构造函数?

  26. 26

    带有Google App Engine的Activator Play Framework

  27. 27

    Typesafe Activator:“运行”有效,但“启动”失败并显示错误

  28. 28

    带有Activator的实例无法访问属性,反射

  29. 29

    如何使用TypeSafe Activator运行Scala bash脚本?

热门标签

归档