Вы определенно не можете использовать this
внутри вызова цепочки конструктора, поэтому вам придется вызывать его в теле конструктора. Самый простой способ - извлечь общий код инициализации в отдельный метод, например так:
public SignatureMediator(int someValue, int otherValue, int thirdValue)
{
Initialise(someValue, otherValue, thirdValue)
SigForm = new Signature(this);
}
public SignatureMediator(ISignature form, int someValue, int otherValue, int thirdValue)
{
Initialise(someValue, otherValue, thirdValue)
SigForm = form;
}
private void Initialise(int someValue, int otherValue, int thirdValue)
{
SomeValue= someValue;
OtherValue= otherValue;
ThirdValue= thirdValue;
}
Если создание объекта Signature
действительно дешево, вы можете избежать использования дополнительного метода и просто вызвать второй конструктор для вызова первого, перед тем как перезаписать значение SigForm, которое он создает, переданным значением.