您的位置:首页 > 移动开发 > Objective-C

C#DynamicObject和ExpandoObject

2017-04-22 21:55 357 查看
    class Program

    {

        static void Main(string[] args)

        {

            //dynamic v = new ExpandoObject();

            //v.Name = "123";

            //v.Value = "456";

            dynamic v = new TestClass();

            v.Name = "Name";

            v.Value = "Value";

            Console.WriteLine(v.Name);

            Console.ReadLine();

        }

    }

    public class TestClass:DynamicObject

    {

        private Dictionary<string, object> _dynamicData = new Dictionary<string, object>();

        public override bool TryGetMember(GetMemberBinder binder, out object result)

        {

            result = null;

            if(_dynamicData.Keys.Contains(binder.Name))

            {

                result = _dynamicData[binder.Name];

                return true;

            }

            return false; 

        }

        public override bool TrySetMember(SetMemberBinder binder, object value)

        {

            if(_dynamicData.Keys.Contains(binder.Name))

            {

                _dynamicData[binder.Name] = value;

            }

            else

            {

                _dynamicData.Add(binder.Name, value);

            }

            return true;

        }

    }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: