示例#1
0
        public void TestIndexerWithTwoParams()
        {
            var refObj  = new Reflector(typeof(IndexerTestTarget));
            var obj     = new IndexerTestTarget();
            var refItem = new Reflector(NSName + ".IndexerItem", typeof(IndexerTestTarget));

            //値を取得
            var item4three = refObj.GetIndexer(obj, 4, "three");

            Assert.AreEqual(3, refItem.GetField(item4three, "num"));

            //値を設定
            var item12hoge = refItem.NewInstance(int.MaxValue);

            refObj.SetIndexer(obj, item12hoge, 12, "hoge");

            //設定した値を確認
            var res = refObj.GetIndexer(obj, 12, "hoge");

            Assert.AreEqual(int.MaxValue, refItem.GetField(res, "num"));
        }
示例#2
0
        public void TestIndexerWithOneParam()
        {
            var refObj  = new Reflector(typeof(IndexerTestTarget));
            var obj     = new IndexerTestTarget();
            var refItem = new Reflector(NSName + ".IndexerItem", typeof(IndexerTestTarget));

            //値を取得
            var item02 = refObj.GetIndexer(obj, 2);

            Assert.AreEqual(20, refItem.GetField(item02, "num"));

            //値を設定
            var item11 = refItem.NewInstance(1234);

            refObj.SetIndexer(obj, item11, 11);

            //設定した値を確認
            var res = refObj.GetIndexer(obj, 11);

            Assert.AreEqual(1234, refItem.GetField(res, "num"));
        }