With macro
От: Мишень-сан  
Дата: 26.01.10 11:24
Оценка:
Появилась идея макроса. Или расширения для макроса Record
Что-то вроде такого:

[Record(Makers=true)]
struct A
{
  public readonly Field1: int;
  public readonly Field2: string;
}

превращается в
struct A
{
  public Field1: int;
  public Field2: string;

  public this(Field1: int, Field2: string)
  {
    this.Field1 = Field1;
    this.Field2 = Field2;
  }
  
  public withField1(Field1: int): A
  {
    A(Field1, this.Field2)
  }
  
  public withField2(Field2: string): A
  {
    A(this.Field1, Field2)
  }
}


применяетя примерно так:
def MakeA()
{
  def MakeOtherA()
  {
    A(1, "alpha")
  }
  
  MakeOtherA().withField1(5)
}
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.