コード例 #1
0
ファイル: Lenses.cs プロジェクト: rkoeninger/KitchenSink
        public void LensComposition()
        {
            var addr = new Lens <Person, Address>(x => x.Address, (x, y) => new Person(x.FirstName, x.LastName, y));
            var ct   = new Lens <Address, string>(x => x.City, (x, y) => new Address(x.Street, y));

            var addrCt = addr.Then(ct);

            var address = new Address("123 Fake Street", "Anytown");
            var person  = new Person("John", "Doe", address);

            Assert.AreEqual("Anytown", addrCt.Get(person));
            Assert.AreEqual("Someville", addrCt.Set(person, "Someville").Address.City);
        }