C # Можно ли создать необязательные ограничения универсального типа

Думаю, я знаю ответ на этот вопрос, но мне нужно указать, что универсальный метод может принимать тип, основанный на двух необязательных ограничениях. При этом T может быть как того, так и другого типа.

public WebPage Click<T>(Func<WebPage> predicate) where T : LinkBase || FieldBase, new()
{
    WebDriver.FindElement(new T().LinkPath).Click();
    WebDriver.Wait();
    return predicate.Invoke();
}

Я знаю, что в настоящее время такого синтаксиса не существует, но есть ли способ решить эту проблему без дублирования метода ограничения для обоих типов? Если нет, возможно ли это для будущей версии языка?

7
задан Ryan Tomlinson 15 July 2011 в 14:10
поделиться