替换两个的通用方法

时间:2015-06-03 09:31:27

标签: c# generics

我想使下面的方法具有通用性,此方法使用搜索服务进行搜索,并且所有可能的URL都在字典中。

public XDocument DoSearchForTypeA()
{
    return searchService.Search(dictionary["optiona"]);
}

public XDocument DoSearchForTypeB()
{
    return searchService.Search(dictionary["optionb"]);
}

我在考虑做这样的事情:

public XDocument DoSearch<T>()
{
    if(typeof(T)==typeof(MyTypeA))
    {
        return searchService.Search(dictionary["optiona"]);
    }
    return searchService.Search(dictionary["optionb"]);
}

我看到我的解决方案非常糟糕。主要是因为我不喜欢开关或ifs解析每种类型。它使得代码在规模上不那么灵活。

我希望有一个更优雅的解决方案,但我觉得这不是使用泛型方法的最佳示例。你能就这个反思给我一些建议吗?

1 个答案:

答案 0 :(得分:4)

字典是其中一个选项:

ecosystem