InheritConstructors is a handy macro when you need to simply pass all arguments to a base constructor.
Watch the Screencast
Before
using System;
namespace MacrosDemo
{
public class MyBaseClass
{
public this(name : string, foo : int, bar : bool)
{
_name = name;
_foo = foo;
_bar = bar;
}
_name : string;
_foo : int;
_bar : bool;
public virtual Test() : string
{
"Hello from MyBaseClass"
}
}
public class MySubClass : MyBaseClass
{
public this(name : string, foo : int, bar : bool)
{
base(name, foo, bar)
}
public override Test() : string
{
"Hello from MySubClass"
}
}
module Program
{
Main() : void
{
}
}
}
After
using System;
using Nemerle;
namespace MacrosDemo
{
public class MyBaseClass
{
public this(name : string, foo : int, bar : bool)
{
_name = name;
_foo = foo;
_bar = bar;
}
_name : string;
_foo : int;
_bar : bool;
public virtual Test() : string
{
"Hello from MyBaseClass"
}
}
[InheritConstructors]
public class MySubClass : MyBaseClass
{
public override Test() : string
{
"Hello from MySubClass"
}
}
module Program
{
Main() : void
{
}
}
}