Здравствуйте, FDSC, Вы писали:
FDS>А, собственно, что в этом плохого? Мы просто хотим структурировать программу, вводя некоторый вложенный Enum, как и в других классах. Что даст инкапсуляция перечисления в нешаблонный класс?
Ну, тогда надо было разрешать только private-энумы. Это в компиляторе можно разрулить. Сам энум сделать internal, но сделать вид, что он доступен только из конкретного типа.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[10]: Почему в генерике невозможно объявить влож. Enum и V
Здравствуйте, catbert, Вы писали:
VD>>И что даст такая инкапсуляция? Что случится если этот enum будет internal?
C>То, что данный enum можно спрятать от классов внутри сборки.
Если у сборки нет друзей, то никакой разницы не будет. Да и не ясно зачем прятать константы.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[7]: Почему в генерике невозможно объявить влож. Enum и Va
Здравствуйте, VladD2, Вы писали:
IT>>Первое мне понятно. А вот как ты догодался про никому не нужно никак в толк не возьму VD>Было бы нужно, хоть кто-то за 7 лет попросил бы.
Ну вот просят. Что теперь?
Если нам не помогут, то мы тоже никого не пощадим.
Re[10]: Почему в генерике невозможно объявить влож. Enum и V
Здравствуйте, IT, Вы писали:
IT>Ну вот просят. Что теперь?
Никто ничего не просит. Орел просто перебирает доступные варианты. Он вот еще баг нашел появляющийся если класс назвать new и использовать его в констрэйнах. Баг конечно, но воспроизвести его смогут только знатные извращенцы.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[11]: Почему в генерике невозможно объявить влож. Enum и V
Здравствуйте, VladD2, Вы писали:
VD> Никто ничего не просит. Орел просто перебирает доступные варианты.
Ну, здесь ты прав: я вообще Enum не люблю, просто вяло пишу описание деклараций AST. Хотя если всё делать с перечисляемыми типами, а не простыми int-ами, то это и понадобится может.
VD> Он вот еще баг нашел появляющийся если класс назвать new и использовать его в констрэйнах. Баг конечно, но воспроизвести его смогут только знатные извращенцы.
Кстати, я таких извращенцев видел: человек 15 со словом base, когда переносили код с Java на C# с помощью "автоматического" трансформатора, который не знал, что с ним делать. А ведь в C# такой Enum создать можно, что будет, если код начнут переносить с C# на Nemerle?
Нереально?
Re[12]: Почему в генерике невозможно объявить влож. Enum и V
Здравствуйте, FDSC, Вы писали:
FDS>Кстати, я таких извращенцев видел: человек 15 со словом base, когда переносили код с Java на C# с помощью "автоматического" трансформатора, который не знал, что с ним делать. А ведь в C# такой Enum создать можно, что будет, если код начнут переносить с C# на Nemerle? FDS>Нереально?
Конкретно эта ситуация с этим перечислением вряд ли будет доставлять проблемы (вынос перечисления вне класса тривален). Проблемы трансляции switch-а с goto значительно реальнее.
/* иЗвиНите зА неРовнЫй поЧерК */
Re[13]: Почему в генерике невозможно объявить влож. Enum и V
Здравствуйте, hardcase, Вы писали:
H>Конкретно эта ситуация с этим перечислением вряд ли будет доставлять проблемы (вынос перечисления вне класса тривален). Проблемы трансляции switch-а с goto значительно реальнее.
Заменить base на @base — тоже тривиально. Но мучений с этим что-то было не мало.
Я вот например, никаких switch с goto у себя в коде не припомню: для меня это как раз нереально.
Re[11]: Почему в генерике невозможно объявить влож. Enum и V
Здравствуйте, FDSC, Вы писали:
FDS>Кстати, я таких извращенцев видел: человек 15 со словом base, когда переносили код с Java на C# с помощью "автоматического" трансформатора, который не знал, что с ним делать. А ведь в C# такой Enum создать можно, что будет, если код начнут переносить с C# на Nemerle? FDS>Нереально?
Этого просто не надо делать. C# можно подключить к проекту в исходном виде. Далее можно использовать partial-классы или переносить нужные (мелкие) части.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[12]: Почему в генерике невозможно объявить влож. Enum и V
Здравствуйте, IT, Вы писали:
IT>Здравствуйте, VladD2, Вы писали:
VD>>Баг конечно, но воспроизвести его смогут только знатные извращенцы.
IT>Одному такому извращенцу Хейльсбрг подарил стандарт C# с личной благодарностью. Видимо от создателей Немерле этого в принципе не стоит ожидать.
Да, это точно. Дарить стандарт C#, лично я никому не намерен .
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[15]: Почему в генерике невозможно объявить влож. Enum и V
Здравствуйте, VladD2, Вы писали:
VD>Еще раз повторюсь, что мир на тебе не заканчивается. У тебя нет, у других может быть. В прочем, пока что никто не жаловался вроде.
Да уж. Хороший язык Немерле, жаль только, что он попался в руки людям с феноменальными способностями отбивать у других желание его использовать.
Если нам не помогут, то мы тоже никого не пощадим.
Re[11]: Почему в генерике невозможно объявить влож. Enum и V
Здравствуйте, VladD2, Вы писали:
VD>Если у сборки нет друзей, то никакой разницы не будет. Да и не ясно зачем прятать константы.
Это называется инкапсуляция. Иногда код прячется не только от сторонних сборок, но и от сторонних классов. Ключевое слово private (а не internal) именно для этого есть в ОО-языках программирования.
Re[16]: Почему в генерике невозможно объявить влож. Enum и V
Здравствуйте, IT, Вы писали:
VD>>Еще раз повторюсь, что мир на тебе не заканчивается. У тебя нет, у других может быть. В прочем, пока что никто не жаловался вроде.
IT>Да уж. Хороший язык Немерле, жаль только, что он попался в руки людям с феноменальными способностями отбивать у других желание его использовать.
IT, ты или по троллить сегодня захотел, или читать разучился. Если последнее, то попробую выразить свою мысль более прямолинейно. Язык не должен быть заточен на прихоти одного конкретного человека. Он должен удовлетворять потребности всех потребителей. И если эти потребности входят в противоречие, то нужно или искать компромисс, или выбирать решения удобные для большинства.
Так понятнее? Если, да, то с чем ты не согласен то?
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[12]: Почему в генерике невозможно объявить влож. Enum и V
Здравствуйте, catbert, Вы писали:
C>Здравствуйте, VladD2, Вы писали:
VD>>Если у сборки нет друзей, то никакой разницы не будет. Да и не ясно зачем прятать константы.
C>Это называется инкапсуляция. Иногда код прячется не только от сторонних сборок, но и от сторонних классов. Ключевое слово private (а не internal) именно для этого есть в ОО-языках программирования.
Я в курсе как это называется. Но инкапсуляция констант — это и есть дурь. Нечего там инкапсулировать.
Инкапсуляция она же ведь не ради самой себя нужна. Это метод позволяющий избежать ошибок и т.п. Инкапсуляция перечислений ни от чего не избавляет, потому как код в них — 0.0.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.