コード例 #1
0
        public void CompositesShouldAccessUnknownPropertiesByIndex()
        {
            dynamic composite = new Animal();

            composite["Fake"] = 42;
            Assert.That(composite["Fake"], Is.EqualTo(42));
        }
コード例 #2
0
        public void CompositesShouldAccessUnknownProperties()
        {
            dynamic composite = new Animal();

            composite.Fake = 42;
            Assert.That(composite.Fake, Is.EqualTo(42));
        }
コード例 #3
0
        public void CompositesShouldAccessKnownPropertiesByIndex()
        {
            dynamic composite = new Animal();

            composite["Pink"] = "Pink";
            Assert.That(composite["Pink"], Is.EqualTo("Pink"));
        }
コード例 #4
0
        public void ChainProperties()
        {
            dynamic foo = new Animal();
            foo.Bar("bar");

            Assert.That(foo.Bar, Is.EqualTo("bar"));
            Assert.That(foo.Bar == null, Is.False);
        }
コード例 #5
0
        public void DuckTyping()
        {
            dynamic foo = new Animal();
            foo.Size(42);

            ISized sized = foo;

            Assert.That(sized.Size, Is.EqualTo(42));
        }
コード例 #6
0
        public void CompositesShouldNotOverrideExistingMembersWhenUsedAsDynamic()
        {
            dynamic composite = new Animal();

            composite.Color = "Pink";
            Assert.That(composite.Color, Is.EqualTo("Pink"));
        }
コード例 #7
0
        public void CompositesShouldNotOverrideExistingMembers()
        {
            var composite = new Animal {Color = "Pink"};

            Assert.That(composite.Color, Is.EqualTo("Pink"));
        }