F # эквивалент ключевого слова C # 'object' - PullRequest
10 голосов
/ 18 мая 2010

Я пытаюсь перенести существующий c # на f # и застрял бы при переносе этой строки c #:

public object myInnerOject

Ответы [ 2 ]

23 голосов
/ 18 мая 2010

В C # object это просто имя типа, относящееся к System.Object. В F # вы можете использовать это полное имя .NET или псевдоним типа obj.

Теперь, что касается объявления поля - есть разные способы записать это в зависимости от контекста. Также рекомендуется инициализировать все поля в F #, поэтому было бы полезно увидеть более широкий контекст вашего кода.

Однако вы можете написать это:

type A() = 
  let mutable (myInnerObj:obj) = null

Это создает приватное поле myInnerObj типа System.Object, инициализированное null, которое может быть изменено позже (например, myInnerObj <- new Random()). Я использовал пример с приватным полем, потому что публичные поля обычно не рекомендуется в .NET.

6 голосов
/ 18 мая 2010

@ Томас прав. Вы также можете проверить эти блоги:

Основной синтаксис F # - типов

Как этот код C # выглядит в F #?

...