Re[5]: метод TypeBuilder.RemoveParsedMember
От: Аноним  
Дата: 12.02.12 15:48
Оценка:
Здравствуйте, _Claus_, Вы писали:


А>>Если класс уже скомпилирован то тут вряд ли пройдет данный подход. Сделать изменение так можно только в исходнике.

_C_>конечно речь о исходниках.

А>>Тогда почему Просто не прописать макрос свойство?

_C_>да это оно и есть. кусок этого. самый критичный. только более универсальный.
Пока не могу понять зачем там тогда удаление.

A>>Вообщем чем дальше смотрю на мучения с немерли тем больше верю в пословицу. Любая попытка сделать макросы это попытка изобрести лисп

_C_>переизобрести. лучше. быстрее. проще.
Не лучше. Не быстрее.синтаксис другой.
Re[6]: метод TypeBuilder.RemoveParsedMember
От: _Claus_  
Дата: 12.02.12 15:54
Оценка:
А>>>Тогда почему Просто не прописать макрос свойство?
_C_>>да это оно и есть. кусок этого. самый критичный. только более универсальный.
А>Пока не могу понять зачем там тогда удаление.

для трансформации одного в другое. одно удаляется, другое добавляется.
поле->свойство — частный случай.
Re[4]: метод TypeBuilder.RemoveParsedMember
От: Ziaw Россия  
Дата: 13.02.12 03:37
Оценка: +1
Здравствуйте, Аноним, Вы писали:

А>Вообщем чем дальше смотрю на мучения с немерли тем больше верю в пословицу.


Мучения? Кто-то мучается что-ли? Имхо, все, кто работает над языком получают от этого удовольствие.

_Claus_ просто хочет несколько странного. Писать в коде поле, а получать свойство с тем же именем.

А>Любая попытка сделать макросы это попытка изобрести лисп


Чего его изобретать? Вот если бы разработчики не знали о лиспе, но макросы в немерле взяли многие идеи именно оттуда. Сила лиспа в том, что любой синтаксис там будет синтаксисом списка. Поэтому реализация макросов там элементарна, но возможности DSL-строения на нуле.
Re[5]: метод TypeBuilder.RemoveParsedMember
От: _Claus_  
Дата: 13.02.12 20:40
Оценка:
Z>_Claus_ просто хочет несколько странного. Писать в коде поле, а получать свойство с тем же именем.

Не только это.1) Хочу метод или описание одного класса преобразовать в методы других классов.
2) Не хочу писать типы возврата у методов, которые по определению всегда возвращают только один тип.
напр. логическое правило. или факт.
3) возможность изменить тип поля, напр int на FuzzyInt.
4) ..
Re[6]: метод TypeBuilder.RemoveParsedMember
От: Ziaw Россия  
Дата: 13.02.12 20:57
Оценка:
Здравствуйте, _Claus_, Вы писали:


Z>>_Claus_ просто хочет несколько странного. Писать в коде поле, а получать свойство с тем же именем.


_C_>Не только это.1) Хочу метод или описание одного класса преобразовать в методы других классов.

_C_>2) Не хочу писать типы возврата у методов, которые по определению всегда возвращают только один тип.
_C_>напр. логическое правило. или факт.
_C_>3) возможность изменить тип поля, напр int на FuzzyInt.
_C_>4) ..

Ты хочешь делать нормальные ДСЛ. Можно так:

[MyDSL]
module MyDeclaraiveModel
{
   class MyClass
   {
      int FuzzyIntField;
   }
}

// а MyDSL генерирует вне модуля
class MyClass // твой код будет работать с этим классом
{
  FuzzyInt FuzzyIntField {get;set;}
}


Костыли. Надо делать Н2, в Н1 это будут костыли.
Re[7]: метод TypeBuilder.RemoveParsedMember
От: _Claus_  
Дата: 13.02.12 21:12
Оценка:
Z>Ты хочешь делать нормальные ДСЛ.

Хочу N допилить до удобного для себя состояния. насколько возможно. с внешними DSL уже намахался.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.