我想将所有的类转换为泛型类,然后调用类方法 [英] I want to convert all my classes in Generic classes then call classes methods

查看:106
本文介绍了我想将所有的类转换为泛型类,然后调用类方法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想使用泛型来使用任何类型的 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆