Ich habe ein Objekt, das eine Schnittstelle implementiert, dann finde ich das Objekt mit Reflektion ... Wie kann ich das Objekt in die Schnittstelle werfen und es dann in eine Liste einfügen?Objekt als Schnittstelle
6
A
Antwort
14
Sie müssen das Objekt nicht umwandeln, wenn es von einem Typ ist, der die Schnittstelle implementiert.
IMyBehaviour subject = myObject;
Wenn die Art der myObject
nur Object
dann müssen Sie werfen. Ich würde es auf diese Weise tun:
IMyBehaviour subject = myObject as IMyBehaviour;
Wenn myObject
nicht die angegebene Schnittstelle implementieren Sie am Ende mit subject
null
zu sein. Sie werden wahrscheinlich danach suchen müssen, bevor Sie es in eine Liste eintragen.
1
Hier ist eine Funktion, die
cast [s] das Objekt in die Schnittstelle und legen Sie sie dann in eine Liste
public void CastAndAdd(object objThatImplementsMyInterface, IList<IMyInterface> theList) {
theList.Add((IMyInterface)objThatImplementsMyInterface);
}
Ich meine, wenn Sie bereits das Objekt gefunden haben und haben die Liste, das ist ziemlich elementar. Ersetzen Sie einfach "IMyInterface" mit der von Ihnen verwendeten Schnittstelle. Oder verallgemeinern Sie dies entsprechend Ihrem spezifischen Code.
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);
}
}
Verwandte Themen
- 1. Cast Objekt generische Schnittstelle
- 2. Warum unterstützt C# kein Objekt mit einer Schnittstelle als Parameter?
- 3. Delphi - Schnittstelle als eine andere Schnittstelle
- 4. Linq-Ausgabe als Schnittstelle?
- 5. Java mit Schnittstelle als Rückruf
- 6. Abstrakte Klasse als funktionale Schnittstelle
- 7. IEnumerable Schnittstelle als ein Typ?
- 8. Enumeration als Typ/Schnittstelle verwenden
- 9. Passing-Schnittstelle als Funktionsparameter (PHP)?
- 10. Wie benutze ich die Schnittstelle als Feld?
- 11. Serialisieren Sie ein Objekt mit einer Schnittstelle
- 12. Angular2 Unit Test + Objekt einer Schnittstelle erstellen
- 13. Implementierung generische Schnittstelle, die eine generische Schnittstelle als Parameter
- 14. Testen, ob ein Objekt eine Schnittstelle implementiert
- 15. Ausnahme "Remote-Objekt implementiert illegale Remote-Schnittstelle"?
- 16. Json-Objekt von der seriellen Schnittstelle lesen
- 17. Schnittstelle als Methode Parameter in Java
- 18. Problem einer COM-Schnittstelle als Parameter verwendet
- 19. Caching-API/Schnittstelle als Modell verwenden
- 20. Indexer als Teil der Schnittstelle in C#
- 21. Verwendung von Scala-Eigenschaft als Callback-Schnittstelle
- 22. ESP8266 als Internet-Schnittstelle (Access Point)
- 23. Erzwingen Sie einen generischen Typ als Schnittstelle?
- 24. , wie die Art der Variablen als Schnittstelle
- 25. Java-Schnittstelle vs Klasse als Rückgabetyp
- 26. Warum eine Schnittstelle als abstrakt deklarieren?
- 27. Warum werden Klassen heutzutage als Schnittstelle definiert?
- 28. Deklarieren einer Variablen als mehr als eine Schnittstelle
- 29. Ninject 2.0 - Bindung an ein Objekt, das die gleiche Schnittstelle mehr als einmal verwendet?
- 30. Ist es besser, eine * Schnittstelle * oder ein * Objekt * als Parameter an eine Funktion zu übergeben?
Post einige Code und zeigen Sie, wo Sie stecken bleiben. –
oh Ironie: Der Frage Titel ** ist die Antwort ** genau – sehe