2015-07-02 3 views
0

Я хочу ArrayList, где вы можете добавить объекты, которые реализуют интерфейс. Что-то вроде этого:ArrayList с объектами, которые реализуют интерфейс

ArrayList<Object implements Interface> list = 
    new ArrayList<Object which implements a specific Interface>(); 

Что такое правильный синтаксис для этого?

+0

Подробнее о дженериках. –

+0

Как насчет наследования от ArrayList и реализации интерфейса? – hpd

+0

Я не хочу, чтобы ArrayList реализовал интерфейс, я хочу, чтобы объекты IN в ArrayList реализовали интерфейс. – ShroomPow

ответ

0

Просто установите интерфейс как тип общего. Здесь вы вводите код в C#:

interface IFoo { 
    void foo(); 
} 

class Foo1 : IFoo { 
    public void foo() { 
     Console.WriteLine("foo1"); 
    } 
} 

class Foo2 : IFoo { 
    public void foo() { 
     Console.WriteLine("foo2"); 
    } 
} 

class Program { 
    public static void Main() { 
     // IFoo type: any object implementing IFoo may go in 
     List<IFoo> list = new List<IFoo>(); 
     list.Add(new Foo1()); 
     list.Add(new Foo2()); 
     foreach(IFoo obj in list) obj.foo(); // foo1, foo2 
     Console.ReadKey(); 
    } 
}