コード例 #1
0
        public void CloneToJaggedStructArray()
        {
            var source = new[]
            {
                new[] {new CloneTestStructWithClonableClassField { TestClass = new CloneTestClass { FirstName = "John", LastName = "Doe" }}},
                new[] {new CloneTestStructWithClonableClassField { TestClass = new CloneTestClass { FirstName = "Jane", LastName = "Smith"}}}
            };

            var dest1 = new CloneTestClass();
            var dest2 = new CloneTestClass();

            var destination = new[]
            {
                new[] {new CloneTestStructWithClonableClassField { TestClass = dest1}}, 
                new[] {new CloneTestStructWithClonableClassField { TestClass = dest2}}
            };

            var clone = source.CloneTo(destination);

            Assert.IsTrue(ReferenceEquals(dest1, clone[0][0].TestClass));
            Assert.IsTrue(ReferenceEquals(dest2, clone[1][0].TestClass));

            Assert.AreEqual("John", clone[0][0].TestClass.FirstName);
            Assert.AreEqual("Doe", clone[0][0].TestClass.LastName);

            Assert.AreEqual("Jane", clone[1][0].TestClass.FirstName);
            Assert.AreEqual("Smith", clone[1][0].TestClass.LastName);
        }
コード例 #2
0
        public void CloneToJaggedClassArray()
        {
            var source = new[]
            {
                new[] {new CloneTestClass { FirstName = "John", LastName = "Doe" }},
                new[] {new CloneTestClass { FirstName = "Jane", LastName = "Smith"}}
            };

            var dest1 = new CloneTestClass();
            var dest2 = new CloneTestClass();

            var destination = new[]
            {
                new[] {dest1}, 
                new[] {dest2}
            };

            source.CloneTo(destination);

            Assert.IsTrue(ReferenceEquals(dest1, destination[0][0]));
            Assert.IsTrue(ReferenceEquals(dest2, destination[1][0]));

            Assert.AreEqual("John", destination[0][0].FirstName);
            Assert.AreEqual("Doe", destination[0][0].LastName);

            Assert.AreEqual("Jane", destination[1][0].FirstName);
            Assert.AreEqual("Smith", destination[1][0].LastName);
        }
コード例 #3
0
        public void CloneToMultidimentionalClassArray()
        {
            CloneTestClass[,] source = new[,]
            {
                {
                    new CloneTestClass { FirstName = "John", LastName = "Doe" },
                    new CloneTestClass { FirstName = "Jane", LastName = "Smith"}
                }
            };

            var dest1 = new CloneTestClass();
            var dest2 = new CloneTestClass();

            var destination = new[,]
            {
                {
                    dest1,
                    dest2
                }
            };

            source.CloneTo(destination);

            Assert.IsTrue(ReferenceEquals(dest1, destination[0, 0]));
            Assert.IsTrue(ReferenceEquals(dest2, destination[0, 1]));

            Assert.AreEqual("John", destination[0, 0].FirstName);
            Assert.AreEqual("Doe", destination[0, 0].LastName);

            Assert.AreEqual("Jane", destination[0, 1].FirstName);
            Assert.AreEqual("Smith", destination[0, 1].LastName);
        }
コード例 #4
0
        public void CloneToMultidimentionalStructArray()
        {
            var dest1 = new CloneTestStructWithClonableClassField { TestClass = new CloneTestClass() };
            var dest2 = new CloneTestStructWithClonableClassField { TestClass = new CloneTestClass() };

            var source = new[,]
            {
                {
                    new CloneTestStructWithClonableClassField { TestClass = new CloneTestClass { FirstName = "John", LastName = "Doe" } },
                    new CloneTestStructWithClonableClassField { TestClass = new CloneTestClass { FirstName = "Jane", LastName = "Smith" } }
                }
            };

            var dest = new[,]
            {
                {
                    dest1,
                    dest2
                }
            };

            var clone = source.CloneTo(dest);

            Assert.IsTrue(ReferenceEquals(clone[0, 0].TestClass, dest1.TestClass));
            Assert.IsTrue(ReferenceEquals(clone[0, 1].TestClass, dest2.TestClass));

            Assert.AreEqual("John", clone[0, 0].TestClass.FirstName);
            Assert.AreEqual("Doe", clone[0, 0].TestClass.LastName);

            Assert.AreEqual("Jane", clone[0, 1].TestClass.FirstName);
            Assert.AreEqual("Smith", clone[0, 1].TestClass.LastName);
        }
コード例 #5
0
        public void CloneToStructArray()
        {
            var source = new[] { new CloneTestStruct { FirstName = "John", LastName = "Doe" } };
            var destination = new CloneTestStruct[1];

            source.CloneTo(destination);

            Assert.AreEqual("John", destination[0].FirstName);
            Assert.AreEqual("Doe", destination[0].LastName);
        }