Hm, the following code works fine indeed:

public class Foo
{
    public Foo()
    {
        assert( this != null );
    }
}

int main(string[] argv)
{
    var f = new Foo();
    return 0;
}


But in my other real program a similar assertion is false in a constructor.
I need dig to the bottom of it, will be back with results.

BR, Vitaly Kirsanov
skype: vkirsan

2014-11-11 3:37 GMT+03:00 Nor Jaidi Tuah <norjaidi.t...@ubd.edu.bn>:

>
> > Is 'this' always null in constructors? The following code produces a
> > run-time error:
> >
> > public class Foo
> > {
> >     Foo()
> >     {
> >         assert( this != null );
> >     }
> > }
>
> Are you sure about this? Perhaps you should
> provide a small program that triggers this error.
>
> > Is there a way to get the true value of this in the constructor? I guess,
> > probably not. As far as I understand references in vala are somewhat
> > similar to shared_ptr<> pointers in C++ and vala classes to
> > enable_shared_from_this<> C++ subclasses. If the reasons are also
> similar,
> > it would be sad.
>
> Vala references are like C pointers -- raw,
> unwrapped, direct and optimizer friendly (though
> I notice that the vala compiler puts an
> additional indirection for private variables,
> incurring performance penalty in object construction
> and subsequent accesses).
>
> C++ shared_ptr is an ugly wart. Its only similarity
> with Vala references is ref counting.
>
> Do not let your experience with shared_ptr
> discourage you from Vala.
>
> Nice day
> Nor Jaidi Tuah
>
>
>
>
> PRIVILEGED/CONFIDENTIAL information may be contained in this message. If
> you are neither the addressee (intended recipient) nor an authorised
> recipient of the addressee, and have received this message in error, please
> destroy this message (including attachments) and notify the sender
> immediately. STRICT PROHIBITION: This message, whether in part or in whole,
> should not be reviewed, retained, copied, reused, disclosed, distributed or
> used for any purpose whatsoever. Such unauthorised use may be unlawful and
> may contain material protected by the Official Secrets Act (Cap 153) of the
> Laws of Brunei Darussalam. DISCLAIMER: We/This Department/The Government of
> Brunei Darussalam, accept[s] no responsibility for loss or damage arising
> from the use of this message in any manner whatsoever. Our messages are
> checked for viruses but we do not accept liability for any viruses which
> may be transmitted in or with this message.
> _______________________________________________
> vala-list mailing list
> vala-list@gnome.org
> https://mail.gnome.org/mailman/listinfo/vala-list
>
_______________________________________________
vala-list mailing list
vala-list@gnome.org
https://mail.gnome.org/mailman/listinfo/vala-list

Reply via email to