typeof(this) return wrong type
Andrey via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Sat Apr 22 04:45:54 PDT 2017
On Saturday, 22 April 2017 at 11:36:09 UTC, Stefan Koch wrote:
> On Saturday, 22 April 2017 at 11:33:22 UTC, Andrey wrote:
>> Hello, I trying to add custom attribute OnClickListener, the
>> problem is that typeof always return BaseView type instead of
>> MyView.
>>> struct OnClickListener {
>>> string id;
>>> }
>>>
>>> class BaseView {
>>> void onCreate() {
>>> writeln(getSymbolsByUDA!(typeof(this),
>>> OnClickListener).stringof);
>>> }
>>> }
>>>
>>> class MyView : BaseView {
>>> @OnClickListener("okButton")
>>> void onOkButtonClick() {
>>> writeln("Hello world!");
>>> }
>>> }
>
> typeof returns a static type not a dynamic type.
> If there is a branch of the function that does not return
> myview the closed base-type is used.
How to best solve this problem? I do not want using template
mixin for this. It works for me using realtime.
More information about the Digitalmars-d-learn
mailing list