Макрос для генерации свойств
От: Visor2004  
Дата: 25.01.12 18:09
Оценка:
Что за фигня с сайтом? третий раз создаю тему в Nemerle, а она оказывается в .NET GUI

Еще раз: почитав статьи про макросы, я так понял, что на сегодняшний день нет возможности написать макрос, который определяет свой синтаксис объявления свойств? мне хочется сделать что-то типа такого:

class Test
{
   UIProperty Caption : string
   {
      get;
      set;
      changed 
      { 
         when ( old != value )
         {
            RaiseNotification ( );
         }
      }
      validate
      {
         !string.IsNullOrEmpty ( value )
      }
   }
}



Должно разворачиваться как-то так:


class Test
{
   mutable caption : string;
   def captionValidate : ValidateCallback;
   def captionChanged : ValidateCallback;

   [ VisualProperty ]
   public Caption : string
   {
      get { caption }
      set
      {
         when ( caption != value )
         {
            when ( captionValidate != null && captionValidate ( this, value ) )
               caption = value;
            when ( captionChanged != null )
              captionChanged ( this, caption )
         }
      }
   }

   private static OnCaptionPropertyChanged ( sender : Test, newValue : string ) : void
   {
      sender.RaiseNotification ( )
   }

   private static OnCaptionValidate ( sender : Test, newValue : string ) : bool
   {
      !string.IsNullOrEmpty ( newValue )
   }
}
Помните!!! ваш говнокод кому-то предстоит разгребать.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.