2010-08-25 39 views
6

Tôi có một đối tượng thực hiện giao diện, sau đó tìm đối tượng đó bằng cách sử dụng sự phản chiếu ... Làm thế nào tôi có thể đưa đối tượng vào giao diện và sau đó đặt nó vào Danh sách?Đối tượng là giao diện

+6

Đăng một số mã và trỏ đến nơi bạn bị kẹt. –

+18

oh trớ trêu: tiêu đề câu hỏi ** là câu trả lời ** chính xác – sehe

Trả lời

14

Bạn không cần phải bỏ đối tượng nếu nó thuộc loại thực hiện giao diện.

IMyBehaviour subject = myObject; 

Nếu loại myObject chỉ là Object thì bạn cần truyền. Tôi sẽ làm điều đó theo cách này:

IMyBehaviour subject = myObject as IMyBehaviour; 

Nếu myObject không thực hiện giao diện cho bạn kết thúc với subjectnull. Bạn có thể sẽ cần phải kiểm tra nó trước khi đưa nó vào một danh sách.

1

Dưới đây là một chức năng mà

cast [s] đối tượng vào giao diện và sau đó đặt nó vào một danh sách

public void CastAndAdd(object objThatImplementsMyInterface, IList<IMyInterface> theList) { 
    theList.Add((IMyInterface)objThatImplementsMyInterface); 
} 

Ý tôi là, nếu bạn đã tìm thấy đối tượng và có danh sách, điều này khá sơ cấp. Chỉ cần thay thế "IMyInterface" bằng bất kỳ giao diện nào bạn đang sử dụng. Hoặc khái quát hóa điều này khi thích hợp cho mã cụ thể của bạn.

1
public interface IFoo { } 

public class Foo : IFoo {} 


SomeMethod(object obj) 
{ 
    var list = new List<IFoo>(); 
    var foo = obj as IFoo; 
    if(foo != null) 
    { 
     list.Add(foo); 
    } 
} 
Các vấn đề liên quan