Verständnis der Einschränkung von C#in statischen Methoden in der Interface Implementierungen
c# verhindert die Einbeziehung statischer Methoden in Schnittstellenimplementierungen aus mehreren wichtigen Gründen.
semantische Inkonsistenz: Schnittstellen definieren das Objektverhalten. Statische Methoden, die unabhängig von bestimmten Fällen arbeiten, widersprechen diesem Grundprinzip. Schnittstellen beschreiben individuelle Objektfunktionen, nicht gemeinsame Funktionen.
Vertragliche Integrität: Schnittstellen wirken als Verträge für Klassen. Wenn statische Methoden ausgeschlossen sind, stellt sicher, dass dieser Vertrag konsequent für alle Instanzen der Implementierungsklasse und nicht für eine allgemeine statische Abstraktion gilt.
Illustratives Beispiel: Animal
und person
Das angegebene Beispiel zeigt, wie Animal
und person
eine screenname
Methode anders implementieren:
Animal
: a static screenname
Methode würde einen generischen Namen für alle Tierobjekte darstellen. person
: Eine Instanzmethode würde eindeutige Namen für jedes Person -Objekt ermöglichen. Alternative Ansätze können das gewünschte Ergebnis erzielen, ohne den Schnittstellenvertrag zu beeinträchtigen. Zum Beispiel:
Animal
mit einer konstanten Eigenschaft: Definieren einer konstanten Eigenschaft in der Animal
Klasse und Rückgabe ihres Wertes von screenname ()
, behält die statische Namen beibehalten, während Sie Regeln einstellen.
in Zusammenfassung:
c #s Einschränkung zu statischen Methoden in der Schnittstellenimplementierung behält die semantische Integrität von Schnittstellen als Verträge für einzelne Objekte bei. Dies gewährleistet ein konsequentes Verhalten in allen implementierenden Klassen.Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3