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