public class Bus : IPresentable
{
public string Name { get; set; } = "Bus";
public int ID { get; set; } = 12345;
//******** IPresentable interface ***************//
public int LocX { get; set; }
public int LocY { get; set; }
}
Schnittstelle:Gibt es eine Möglichkeit, in Runtime zu sagen, ob eine Klasseneigenschaft von einer Schnittstelle kommt?
public interface IPresentable
{
int LocX { get; set; }
int LocY { get; set; }
}
in meiner Anwendung:
Bus bus = new Bus();
bus.LocX = 10; // is there a way to tell that this comes from interface
bus.Name = "New Name" ; // but this is not ?
Eigenschaften kommen nicht wie von einer Basisklasse aus einer Schnittstelle. Eine Schnittstelle ist nur ein Vertrag. Wenn eine Klasse eine Schnittstelle implementiert, sagt sie nur "Ich stimme zu, die Vertragsbedingungen dieser Schnittstelle zu erfüllen". Sie wissen also, dass 'Bus' eine 'LocX'-Eigenschaft hat. Versuchen Sie nur zu bestimmen, ob 'Bus'' IPresentable' implementiert? Wenn ja, müssen Sie nur 'typeof (IPresentable) .IsAssignableFrom (typeof (Bus))' – itsme86