[Mono-list] Calling a constructor from within another's code

Ian Norton inb at ncipher.com
Tue Nov 16 15:16:39 EST 2010


Hi, 

I should have explained my earlier example a bit better,  Here Goes;

public class C : B
{
  public  C() : this( new GetDataFromTheDatabase() ) {}
  private C( GetDataFromTheDatabase data ) : base( data.a, data.b ){}
}

This takes advantage of the fact that you can chain into other
constructors in your class.

Regards

Ian


On Tue, 2010-11-16 at 18:35 +0000, Francisco M. Marzoa wrote:
> Hello,
> 
> I know you can call a base class constructor using ": base" after the
> new constructor signature. I.e.:
> 
> public class A
> {
>     int i;
>     public A (int _i)
>     {
>         i=_i;
>     }
> }
> 
> public class B : A
> {
>     public B (int a, int b) : base (a+b) // Calls A constructor with _i
> as _a+_b
>     {
>     }
> }
> 
> But what happens if you should made some more complicated that cannot be
> done in that way???
> 
> For example:
> 
> public class C : B
> {
>     public C ()
>     {
>         MyDataStruct data = GetDataFromTheDatabase ();
>         base ( data.a, data.b ); // This will not work, indeed, but
> illustrates the idea...
>     }
> }
> 
> This is a question more focused on C# than in mono itself, but I hope
> not to disturb no one doing it here since the list has not very high trafic.
> 
> Best regards,
> _______________________________________________
> Mono-list maillist  -  Mono-list at lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/mono-list




More information about the Mono-list mailing list