Beispiel #1
0
        public void ValueTypesTest()
        {
            int edad = 10;// tipo por valor.

            Persona juan = new Persona();//tipo por referencia., las clases y objetos son tipos por referencia.
            Persona pedro = juan;//son la misma referencia, los valores que cambie un objeto o variable, los cambiara el otro.
            Persona pablo=new Persona();

            Assert.AreEqual(0, pedro.Edad);
            juan.Sumar(edad, juan);//le cambia la edad a todo el objeto, porque es por referencia.
            juan.Sumar(edad, juan.Edad);//no le cambia la edad, porque le manda una copia de la edad de juan, que es por valor.

            Assert.AreEqual(10, pedro.Edad);
            Assert.AreEqual(10, juan.Edad);
            Assert.AreEqual(10, juan.Edad);
            Assert.AreEqual(0, pablo.Edad);

            Assert.AreEqual(pedro, juan);
            Assert.AreNotEqual(pablo, juan);//son referencias, pero referencias distintas.

            pedro.Edad = 20;
            Assert.AreEqual(20, juan.Edad);
        }