コード例 #1
0
        public void ReferenceToOtherImmutable()
        {
            var blackWatch           = Watch.Create(color: "black", size: 10);
            var personWithBlackWatch = Person.Create(null, watch: blackWatch);

            var silverWatch           = blackWatch.WithColor("silver");
            var personWithSilverWatch = personWithBlackWatch.WithWatch(silverWatch);

            Assert.Equal(silverWatch, personWithSilverWatch.Watch);
        }
コード例 #2
0
        public void PropertiesAreAlsoBuilders()
        {
            var person        = Person.Create("bill", watch: Watch.Create());
            var personBuilder = person.ToBuilder();

            personBuilder.Watch.Color = "Red";
            var modifiedPerson = personBuilder.ToImmutable();

            Assert.Equal("Red", modifiedPerson.Watch.Color);

            personBuilder.Watch = null;
            var personWithoutWatch = personBuilder.ToImmutable();

            Assert.Null(personWithoutWatch.Watch);
        }