В моем примере ниже представлены 2 класса NET, которые содержат метод CommonMethod. Я хотел бы спроектировать MyMethod, который может принять любой класс (использование), сохраняя при этом функции, общие для NetClassA и NetClassB. Case1 будет делать именно это, только это незаконно, как указано ниже. Case2 также достигнет цели, за исключением INetClassA и INetClassB, которые не существуют. Поэтому мой вопрос заключается в способе навязывания пользовательского интерфейса (ICommonNetMethods) для существующих типов .NET(Case 3)? Альтернативные решения для моей проблемы приветствуются.
// Case 1: Illegal because "where" can only have 1 base class
public void MyMethod<Ttype>(Ttype myClass) where Ttype : NetClassA, NetClassB {}
// Case 2: Legal to utlize multiple "where" interface types
public void MyMethod<Ttype>(Ttype myClass) where Ttype : INetClassA, INetClassB {}
// Case 3: For this to work ICommonNetMethods must be added to NetClassA/NetClassB
public void MyMethod<Ttype>(Ttype myClass) where Ttype : ICommonNetMethods {}
NetClassA() { This .NET class has method CommonMethod() }
NetClassB() { This .NET class has method CommonMethod() }
interface ICommonNetMethods { void CommonMethod() }
Спасибо, aidesigner