小编Ice*_*i23的帖子

预编译的 lambda 表达式用于创建具有带参数的构造函数的类

我目前正在Activator.CreateInstance创建一个类的实例,其类型作为通用参数传入。问题是,这太慢了。我在某处读到,我可以使用预编译的 lambda 表达式执行相同的操作,但是,在我的情况下,由于需要将参数传递给正在创建的类的实例,因此我在实现此操作时遇到了麻烦。

目前我正在做以下事情

public class Class1
{
    private int TestVariable;

    public Class1(int testVariable)
    {
        TestVariable = testVariable;
    }

    public void TestMethod()
    {
        Console.WriteLine($"Test Variable was {TestVariable}");
    }
}

public object Test<T>(params object[] parameters)
{
    var instance = (T) Activator.CreateInstance(typeof(T), BindingFlags.Instance, null, new object[] {9999}, null);

    var testMethod = typeof(T).GetMethod("TestMethod", BindingFlags.Instance);

    return testMethod.Invoke(instance, parameters)
}
Run Code Online (Sandbox Code Playgroud)

我如何使用预编译的 lambda 表达式完成类似的事情?

c# lambda linq-expressions

3
推荐指数
1
解决办法
2975
查看次数

标签 统计

c# ×1

lambda ×1

linq-expressions ×1