tengo la clase siguiente:Pase por referencia: ¿Cuál es más legible/correcto?
public class Person
{
public String Name { get; set; }
}
Tengo un método que toma en Person
y una String
como parámetros:
public void ChangeName(Person p, String name)
{
p.Name = name;
}
Desde Person
se hizo pasar por referencia, se debe cambiar el Name
de la instancia aprobada
¿Pero es este método más legible que el anterior?
public Person ChangeName(Person p, String name)
{
p.Name = name;
return p;
}
Técnicamente, 'p 'no se pasa por referencia en cualquiera de esos ejemplos. – Amber
@Amber ¿Qué tal? Estoy bastante seguro de que es completamente incorrecto. –
'p' * contiene * y * pasa * una referencia, pero no * pasado por referencia * - hay una diferencia clara entre los dos. Pase por referencia (al declarar los argumentos como 'ChangeName (ref Person p, ...)' permitiría algo como 'p = foo' para luego cambiar completamente a qué Persona apuntaba la variable de la persona que llama, no solo los contenidos de la actual Persona señalada. – Amber