Atata iframe Ошибка компиляции метода SwitchTo: использование универсального типа требует аргумента 1 типа - PullRequest
0 голосов
/ 01 сентября 2018

Я создал элемент управления Frame - Frame1 в Class1:

public Frame<_> Frame1 { get; private set; }

И определено Class2 для страницы фрейма:

public class Class2<TPage> : Page<TPage> where TPage : Page<TPage>

Когда я звоню Frame1.SwitchTo<Class2>(), я получаю сообщение об ошибке компиляции:

Для использования универсального типа требуется 1 аргумент типа

Есть ли способ решить это?

Я определяю Class2 как указано выше, так как я хочу определить другие классы, наследующие Class2.

1 Ответ

0 голосов
/ 01 сентября 2018

Если ваш Class2 тип объекта страницы является универсальным базовым объектом страницы, то он не может быть напрямую передан методу SwitchTo. Вы можете пройти только завершенные занятия. Например, вы можете создать неуниверсальный Class2 и передать его.

// Base page object.
public class Class2<TOwner> : Page<TOwner> where TOwner : Class2<TOwner>
{
}

public class Class2 : Class2<Class2>
{
}

public class AnotherClass2 : Class2<AnotherClass2>
{
}

Это позволит вам передать Class2 в SwitchTo метод:

Frame1.SwitchTo<Class2>()

или

Frame1.SwitchTo<AnotherClass2>()
...