我有如下内容:
public interface Client
{
void Operation1();
void Operation2();
}
public class Client1 : Client
{
public void Operation1()
{
Console.WriteLine("Client1 - Operation1");
}
public void Operation2()
{
Console.WriteLine("Client1 - Operation2");
}
}
public class Client2 : Client
{
public void Operation1()
{
Console.WriteLine("Client2 - Operation1");
}
public void Operation2()
{
Console.WriteLine("Client2 - Operation2");
}
}
public class Client3 : Client
{
public void Operation1()
{
Console.WriteLine("Client3 - Operation1");
}
public void Operation2()
{
Console.WriteLine("Client3 - Operation2");
}
}
我需要一种方法来通过单个调用调用所有客户端的方法。类似于委托。
基本上,我想要做以下事情: Clients.Operation1() 输出: Client1 - Operation1 Client2 - Operation1 Client3 - Operation1
实现这个的一种方法是拥有以下类:
public class Clients : Client
{
public List<Client> Clients { get; set; }
public void Operation1()
{
foreach(Client c in Clients)
{
c.Operation1();
}
}
public void Operation2()
{
foreach (Client c in Clients)
{
c.Operation2();
}
}
}
但是每当我更改客户端接口时,我也必须更改客户端类。是否有一种动态生成客户端类(或类似物)的方法?
如果您需要更好的解释,请告诉我,因为我很难解释这个问题。
Func
参数和您想要调用的方法,您就不必在Clients
类中实现Client
接口。 - Vsevolod Goloviznin