arayüzü düşünün: ŞimdiTip
type IVector =
abstract Item : int -> float
bize sınıfını tanımlayalım:
type DenseVector(size : int) =
let mutable data = Array.zeroCreate size
interface IVector with
member this.Item with get n = data.[n]
n-inci girişi mutasyona arz konusunda ne bir yöntemdir yoğun vektör
yok soyut özelliği:
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
Ancak, ben çünkü IVector
arayüzünde soyut yöntemin Item
imza aşağıdaki hatayı alıyorum: Sonra, yukarıdaki kodunu değiştirmek iyi olurdu Bu geçersiz kılma karşılık gelen bulundu.
IVector
'da Item
imzası ne olmalıdır?
. Çok teşekkür ederim! – Allan
garip, arayüzdeki ayarlayıcıyı tanımlamak C# ... –
@Mauricio'da gerekli değildir, evet öyle. Yani, setter'i arayüz üzerinden aramak isteyebilirsiniz. Ve eğer almazsanız ve sadece arayüzde alıcı varsa, o zaman buradaki ayarlayıcıyı rahatsız etmek hala yasa dışıdır: "kamu sınıfı V: IV {çift IV.this [int x] {get {dönüş 0.0;}/* {} * /}} "ayarını yapın (F # deki tüm arabirimlerin açık olduğunu hatırlayın). – Brian