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

Я создал элемент управления 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 ответ

Если твой 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>()
Другие вопросы по тегам