예제 #1
0
        public void DynamicBinaryNoOverride()
        {
            dynamic x = new TestDynamic();
            dynamic y = new TestDynamic();

            Assert.Throws <RuntimeBinderException>(() => x + y);
        }
예제 #2
0
        public void AttemptWriteReadonlyField()
        {
            TestDynamic td = new TestDynamic();
            dynamic     d  = td;

            Assert.Throws <RuntimeBinderException>(() => d.ReadonlyField = 3);
            Assert.Equal(0, td.ReadonlyField); // Confirm exception happened before a write, rather than after.
        }
예제 #3
0
        public void ReadWriteHidingField()
        {
            TestDynamic td = new TestDynamic();
            dynamic     d  = td;

            td.HideField = 9;
            Assert.Equal(9, d.HideField);
            Assert.Equal(9, td.HideField);
            Assert.Equal(0, ((TestDynamicBase)td).HideField);
        }
예제 #4
0
        public void IndexingFromStaticMember()
        {
            dynamic d = new TestDynamic();

            d[0] = 1;
            Assert.Equal(1, d[0]);
            Assert.Throws <RuntimeBinderException>(() => d[0] = "One");
            Assert.Throws <RuntimeBinderException>(() =>
            {
                string val = d[0];
            });
            Assert.Throws <RuntimeBinderException>(() => d["index"]);
        }
예제 #5
0
        public void DynamicUnaryOperationNoOverrides()
        {
            dynamic d = new TestDynamic();

            Assert.Throws <RuntimeBinderException>(() => - d);
        }
예제 #6
0
 public void IndexingFromStaticMember()
 {
     dynamic d = new TestDynamic();
     d[0] = 1;
     Assert.Equal(1, d[0]);
     Assert.Throws<RuntimeBinderException>(() => d[0] = "One");
     Assert.Throws<RuntimeBinderException>(() =>
     {
         string val = d[0];
     });
     Assert.Throws<RuntimeBinderException>(() => d["index"]);
 }
예제 #7
0
 public void DynamicBinaryNoOverride()
 {
     dynamic x = new TestDynamic();
     dynamic y = new TestDynamic();
     Assert.Throws<RuntimeBinderException>(() => x + y);
 }
예제 #8
0
 public void DynamicUnaryOperationNoOverrides()
 {
     dynamic d = new TestDynamic();
     Assert.Throws<RuntimeBinderException>(() => -d);
 }
예제 #9
0
 public void ReadWriteHidingField()
 {
     TestDynamic td = new TestDynamic();
     dynamic d = td;
     td.HideField = 9;
     Assert.Equal(9, d.HideField);
     Assert.Equal(9, td.HideField);
     Assert.Equal(0, ((TestDynamicBase)td).HideField);
 }
예제 #10
0
 public void AttemptWriteReadonlyField()
 {
     TestDynamic td = new TestDynamic();
     dynamic d = td;
     Assert.Throws<RuntimeBinderException>(() => d.ReadonlyField = 3);
     Assert.Equal(0, td.ReadonlyField); // Confirm exception happened before a write, rather than after.
 }