[F#] Вложенные типы
От: Jack128  
Дата: 12.06.10 20:24
Оценка:
Собсвенно как на F# изобразить аналог


class A
{
    class B {}
}


?
очевидные решения типа

type A =
    type B = class end



не прокатывают. а expert f# говорит:

A type definition can contain
members and nested type
definitions.


?
Re: [F#] Вложенные типы
От: Пельмешко Россия blog
Дата: 13.06.10 18:24
Оценка: 4 (2)
Здравствуйте, Jack128, Вы писали:

J>Собсвенно как на F# изобразить аналог


Точно так же, как и partial-классы — никак

J>а expert f# говорит:


Не надо верить Expert F#, надо верить спеке, которая в 8.6 Class Types говорит, что внутри определений типов не может быть определений других типов.
Re: [F#] Вложенные типы
От: geniepro http://geniepro.livejournal.com/
Дата: 14.06.10 07:28
Оценка:
Здравствуйте, Jack128, Вы писали:

J>Собсвенно как на F# изобразить аналог



J>
J>class A
J>{
J>    class B {}
J>}
J>


J>?


В C# такой трюк нужен только потому, что нет понятия модуля. Функцию модулей вынуждены выполнять классы, то есть слово "class" в определении "class A" используется не по назначению.

В F# же модули, как и типы, транслируются на самом деле в классы .NET'а. Так что обьявление типа внутри модуля -- уже является объявлением класса, вложенного в другой класс...

Хотя непонятно, почему тут такое ограничение в F#. Ведь в C# можно делать и два, и три вложенных класса, а, возможно, глубина вложенности классов вообще не ограничена?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.