2014-01-29 3 views
-2

У меня проблема с классом, который должен содержать экземпляры, содержащие один из примерно 30 объектов разных типов (я вызываю это out_out_out_of_many_types_of_subcontract в фрагменте кода ниже).Полиморфизм в C#

class supercontract 
{ 
    void supercontract (float date, one_out_of_many_types_of_subcontract subcontract) 
    { 
     stuff.... 
    } 
} 

Есть ли способ объявления полу-родовой переменной или я должен (1) прибегать к полиморфизма между конструкторами или (2) отливки объекта как определенного типа с блоком (еще) если условия?

Cheers!

+5

Это действительно непонятно, о чем вы спрашиваете. Вы должны представить более конкретный пример. –

+7

Просто у всех этих 30 объектов реализуется интерфейс с методами, для которых этот тип должен быть с ними связан. – Servy

+1

Вы ищите фабрику предметов или что-то еще? – 48klocs

ответ

2

Я бы включил их в единый интерфейс.

interface IContract{} 

class AContract: IContract {...} 

Даже если интерфейс пуст, вы можете ограничить, какие типы могут быть переданы вашему методу.

+1

Технически класс реализует интерфейс, а не наследует его. – itsme86

+0

Исправление, спасибо! –

Смежные вопросы