我目前正在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 表达式完成类似的事情?