Тип свойства Item в F #

Рассмотрим интерфейс:

type IVector = 
    abstract Item : int -> float

Теперь давайте определим класс:

type DenseVector(size : int) = 
    let mutable data = Array.zeroCreate size

    interface IVector with 
        member this.Item with get n = data.[n]

А как насчет предоставления метода для изменения n-й записи плотного вектора? Затем было бы неплохо изменить приведенный выше код как:

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

Однако я получаю следующую ошибку из-за подписи абстрактного метода Item в интерфейсе IVector :

Не было найдено абстрактного свойства, соответствующего этому переопределению.

Итак, какой должна быть подпись элемента в IVector ?

5
задан Brian 10 September 2010 в 02:28
поделиться