одновременное определение статического свойства с тем же именем, что и свойство экземпляра в fsharp - PullRequest
1 голос
/ 08 марта 2012

Я бы хотел использовать оба стиля

      let refdataservice  = BBGReferenceData.Acquire
         //some code
      BBGReferenceData.Release

и

      let refdataservice  = BBGReferenceData.Acquire
         //some code
       refdataservice.Release

Однако я не могу определить статическое свойство и свойство экземпляра с одним и тем же именем.

  static member Release with get() = counter <- counter - 1
                                     if counter = 0 then instance.Value.Stop()
  //does not work, tells me that Release is not a static property
  member x.Release with get() = BBGSession.Release

Попытка переопределения также не работает

  //'No abstract property was found that corresponds to this override'
  override x.Release with get() = BBGSession.Release

Как я могу обойти это?

1 Ответ

1 голос
/ 08 марта 2012

Не думаю, что вы сможете обойти эту проблему; вам нужно будет выбрать другое имя для одного из свойств, к сожалению. Я не уверен, является ли это ожидаемым поведением или непреднамеренным ограничением, но вы не можете определить два свойства с одинаковым именем, даже если одно является статическим, а другое - нет. Аналогично, имена свойств также должны отличаться от имен методов, даже если их статичность отличается.

...