Over a million developers have joined DZone.

Dynamic resolution rules joy


In the following code, what do you believe the output should be?

class Program
    static void Main(string[] args)
        dynamic stupid = new Stupid{Age = 3};


public class Stupid : DynamicObject
    public int Age { get; set; }

    public override bool TryGetMember(GetMemberBinder binder, out object result)
        result = 1;
        return true;


The default is to use the actual type members, and then fall back to the dynamic behavior. Whereas I would expect it to first check the dynamic behavior and then fall back to the actual members if it can’t find dynamic stuff.

Quite annoying.


Published at DZone with permission of Ayende Rahien, DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

The best of DZone straight to your inbox.

Please provide a valid email address.

Thanks for subscribing!

Awesome! Check your inbox to verify your email so you can start receiving the latest in tech news and resources.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}