Ich habe eine Schnittstelle, IResourcePolicy
die die Eigenschaft enthält Version
. Ich muss diese Eigenschaft implementieren, die Wert enthält, den Code, der auf anderen Seiten geschrieben wurde:
IResourcePolicy irp(instantiated interface)
irp.WrmVersion = "10.4";
Wie kann ich eine Eigenschaft implementieren version
?
public interface IResourcePolicy
{
string Version
{
get;
set;
}
}
Antworten:
In der Schnittstelle geben Sie die Eigenschaft an:
In der implementierenden Klasse müssen Sie es implementieren:
Das sieht ähnlich aus, ist aber etwas völlig anderes. In der Schnittstelle gibt es keinen Code. Sie geben einfach an, dass es eine Eigenschaft mit einem Getter und einem Setter gibt, was auch immer sie tun werden.
In der Klasse implementieren Sie sie tatsächlich. Der kürzeste Weg, dies zu tun, ist die Verwendung dieser
{ get; set; }
Syntax. Der Compiler erstellt ein Feld und generiert die Getter- und Setter-Implementierung dafür.quelle
Version
ist das in der Klasse öffentlich? Ahh, ich sehe mein Problem: Wenn Sie die Schnittstelle explizit implementieren (z. B.IResourcePolicy.Version
können Sie nicht definieren, ob sie öffentlich ist.Du meinst so?
quelle
Schnittstellen dürfen keine Implementierung enthalten (einschließlich Standardwerten). Sie müssen zur abstrakten Klasse wechseln.
quelle
Das einfache Beispiel für die Verwendung einer Eigenschaft in einer Schnittstelle:
quelle
Antwort- und Initialisierungsfeld von J.Random Coder.
quelle
Sie sollten eine abstrakte Klasse verwenden, um eine Eigenschaft zu initialisieren. Sie können nicht in Inteface initialisieren.
quelle