Betrachten Sie die Schnittstelle:Art des Item-Eigenschaft in F #
type IVector =
abstract Item : int -> float
Nun wollen wir uns die Klasse definieren:
type DenseVector(size : int) =
let mutable data = Array.zeroCreate size
interface IVector with
member this.Item with get n = data.[n]
Was eine Methode, um über Versorgung mutieren die n-te Eintrag der dichter Vektor? Dann wäre es schön, den obigen Code zu modifizieren, wie:
type DenseVector(size : int) =
let mutable data = Array.zeroCreate size
interface IVector with
member this.Item with get n = data.[n]
and set n value = data.[n] <- value
Allerdings habe ich die folgende Fehlermeldung wegen der Unterzeichnung des abstrakten Methode Item
in der IVector
Schnittstelle:
Keine Zusammenfassung Eigentum wurde gefunden, das dieser Übersteuerung entspricht.
Also, was sollte die Unterschrift von Item
in IVector
sein?
Excellent. Ich danke dir sehr! – Allan
seltsam, Definieren der Setter in der Schnittstelle ist nicht notwendig in C# ... –
@Mauricio, ja, es ist. Das heißt, wenn Sie den Setter über die Schnittstelle aufrufen möchten. Und wenn Sie das nicht tun und nur den Getter im Interface haben, ist es immer noch illegal, den Setter hier auskommentieren zu lassen: "public class V: IV {double IV.this [int x] {get {return 0.0;}/* Setzen Sie {} * /}} "(erinnern Sie sich, dass alle Schnittstellen in F # explizit sind). – Brian