by Miha Markič
5. December 2008 09:57
How often do you derive a class and re-create all of the base constructors? This is not an uncommon task, let's take a custom exception class for example:
public class MyException: Exception
{
}
If you right click on Exception and pick Go to Definition from the context menu you'll see that the Exception class has four constructors:
public class Exception : ISerializable, _Exception
{
public Exception();
public Exception(string message);
protected Exception(SerializationInfo info, StreamingContext context);
public Exception(string message, Exception innerException);
}
And you better re-create all four in your derived MyException class if you want to follow the design guidelines. This is how MyException should look like (without custom code that is):
public class MyException: Exception
{
public MyException()
{
}
public MyException(string message)
: base(message)
{
}
public MyException(string message, Exception innerException)
: base(message, innerException)
{
}
protected MyException(SerializationInfo info, StreamingContext context)
: base(info, context)
{
}
}
This is a straightforward derived Exception class definition and needless to say it is quite boring to create all those constructors again and again. That's why [CodeRush] has a one-click base constructors recreation feature. Position the caret somewhere on the Exception word and invoke [CodeRush] with keyboard shortcut (by default the shortcut is Ctrl+CEDILLA) and instantly all of those boring-to-recreate constructors appear from nowhere. Brilliant.