Предположим, у меня есть класс под названием UIViewController
.C#: параметр метода, реализующий конкретный интерфейс
public class UIViewController
{
// ... methods
}
И у меня есть интерфейс IDoFancyFlips
public interface IDoFancyFlips
{
// ... methods
}
У меня есть классы, которые расширяют UIViewController
и реализуют интерфейс следующим образом.
public class FancyViewController : UIViewController, IDoFancyFlips
{
// ... methods
}
Теперь я хочу написать метод, который принимает UIViewController
в качестве параметра, а только те, которые реализуют IDoFancyFlips
.
public void FlipAndShow(??? controller) {
// implementation
}
Мой вопрос: что мне положить в ???. Кажется, я не мог найти способ сделать это.
Я могу сделать это в Objective C следующим образом:
- (void) flipAndShow:(UIViewController<IDoFancyFlips>*) controller {
// implementation
}
Но я не могу найти эквивалентное заявление в C#.
'общественная пустота FlipAndShow (T контроллер), где T: UIViewController, DoFancyFlips {...}' Если это сделать. –