我想将所有的类转换为泛型类,然后调用类方法 [英] I want to convert all my classes in Generic classes then call classes methods
本文介绍了我想将所有的类转换为泛型类,然后调用类方法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想使用泛型来使用任何类型的 RealClient
来使用 Proxy
。
public interface IClient
{
string GetData();
}
公共类RealClient:IClient
{
字符串数据;
public RealClient()
{
Console.WriteLine(Real Client:Initialized);
Data =成功;
}
public string GetData()
{
return Data;
$ b公共类代理:IClient
{
RealClient _classobject = new RealClient();
public Proxy()
{
Console.WriteLine(ProxyClient:Initialized);
}
public string GetData()
{
return _classobject.GetData();
类程序
{
static void Main(string [] args)
{
Proxy proxy = new Proxy();
Console.WriteLine(代理客户端的数据= {0},proxy.GetData());
Console.ReadKey();
}
}
解决方案
它似乎您正试图实施代理设计模式,并且希望代理可以正常工作与任何类型的 IClient
。
如果是这样,您不需要泛型。这是您通常会执行代理的操作:
public class Proxy:IClient
{
私人只读IClient _client;
public Proxy(IClient客户端)
{
_client = client;
Console.WriteLine(ProxyClient:Initialized);
}
public string GetData()
{
return _client.GetData();
$ / code $ / pre
$ b $ p保持简单。
I want to use generics to be able to use a Proxy
with any kind of RealClient
.
public interface IClient
{
string GetData();
}
public class RealClient : IClient
{
string Data;
public RealClient()
{
Console.WriteLine("Real Client: Initialized");
Data = "success";
}
public string GetData()
{
return Data;
}
}
public class Proxy : IClient
{
RealClient _classobject = new RealClient();
public Proxy()
{
Console.WriteLine("ProxyClient: Initialized");
}
public string GetData()
{
return _classobject.GetData();
}
}
class Program
{
static void Main(string[] args)
{
Proxy proxy = new Proxy();
Console.WriteLine("Data from Proxy Client = {0}", proxy.GetData());
Console.ReadKey();
}
}
解决方案 It seems you're trying to implement the Proxy design pattern, and you want your proxy to work with any kind of IClient
.
If so, you don't need generics for this. This is what you'd normally do to implement a proxy:
public class Proxy : IClient
{
private readonly IClient _client;
public Proxy(IClient client)
{
_client = client;
Console.WriteLine("ProxyClient: Initialized");
}
public string GetData()
{
return _client.GetData();
}
}
Keep it simple.
这篇关于我想将所有的类转换为泛型类,然后调用类方法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文