Я хотел бы сделать ниже методы generic, этот метод выполняет поиск с использованием службы поиска, а все возможные 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 разбор каждого типа. Это делает код не столь гибким, чтобы его масштабировать.
Я хотел бы иметь более элегантное решение, но у меня такое ощущение, что это не лучший пример использования общих методов. Не могли бы вы дать мне несколько советов по этому размышлению?
Я не думаю, что это хорошее решение, я хотел бы сохранить эти два метода. Что произойдет, если вы вызываете его с помощью DoSearch '? Это юридический код в отношении компилятора, но в конечном итоге поиск неправильного словаря (скорее всего). Это то, что вы хотите? * Почему * вы чувствуете необходимость сочетания? –