我正在创建一个通用操作来从给定的 generic 调用一个方法<T>
。
public class TestService
{
public void TestService1()
{
// DO SOMETHING
}
}
使用我在基类中创建的这个通用方法调用
public abstract class ServiceBase
{
protected internal void ExecuteService<T>(Action<T> action)
{
// execute here
action.Invoke() // here is my problem
}
}
在其他继承类中执行:
public void TestVoid()
{
ExecuteService<TestService>(x => x.TestService1());
}
我想TestService1
从使用ExecuteService
.
我如何实现这一目标?
如果问题是在您的操作中提供新实例,您可以简单地这样做:
using System;
class Program : ServiceBase
{
static void Main()
{
var program = new Program();
program.ExecuteService<TestService>(x => x.TestService1());
}
}
public class TestService
{
public void TestService1()
=> Console.WriteLine($"{nameof(TestService)}.{nameof(TestService1)}();");
}
public abstract class ServiceBase
{
protected internal void ExecuteService<T>(Action<T> action) where T : new()
=> action?.Invoke(new T());
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句