J'ai un objet qui implémente une interface, je trouve ensuite cet objet en utilisant la réflexion. Comment puis-je lancer l'objet dans l'interface, puis placez-le dans une liste
3 Réponses :
Vous n'avez pas besoin de lancer l'objet s'il est d'un type qui implémente l'interface. si le type de si MyObject code> est juste
objet code> alors vous devez lancer. Je le ferais de cette façon: p>
MyObject code> ne met pas en œuvre l'interface donnée que vous vous retrouvez avec
sujet code> étant
null code>. Vous aurez probablement besoin de vérifier cela avant de la mettre dans une liste. P> p>
Voici une fonction que
casser [s] l'objet dans l'interface puis placez-le dans une liste p> blockquote>
xxx pré> Je veux dire, si vous avez déjà trouvé l'objet et que vous avez la liste, c'est assez élémentaire. Il suffit de remplacer
imyinterface code> avec n'importe quelle interface que vous utilisez. p>
ou généraliser à partir de ceci, le cas échéant pour votre code spécifique. P> P>
public interface IFoo { } public class Foo : IFoo {} private SomeMethod(object obj) { var list = new List<IFoo>(); var foo = obj as IFoo; if (foo != null) { list.Add(foo); } }
Ou si vous avez une liste FOO de type FOO: var liste = nouvelle liste
Publiez du code et pointez où vous êtes coincé.
Oh irony: le titre de la question est la réponse b> exactement