Mam następujące klasy:Przekaż jako odniesienie: Który jest bardziej czytelny/prawda?
public class Person
{
public String Name { get; set; }
}
Mam metodę, która pobiera w Person
i String
jako parametry:
public void ChangeName(Person p, String name)
{
p.Name = name;
}
Od Person
została przyjęta przez odniesienie, należy zmienić Name
z następujących przekazana instancja.
Ale czy ta metoda jest bardziej czytelna niż powyższa?
public Person ChangeName(Person p, String name)
{
p.Name = name;
return p;
}
Technicznie 'p' nie jest przekazywane przez referencję w żadnym z tych przykładów. – Amber
@Amber Jak to jest? Jestem prawie pewien, że jest całkowicie niepoprawny. –
'p' * zawiera * i * przekazuje * odniesienie, ale nie * przekazane przez referencję * - istnieje wyraźna różnica między tymi dwoma. Przekaż jako odniesienie (deklarując argumenty jako 'ZmieńNazwa (patrz Osoba Personalna, ...)' zezwala na coś takiego jak 'p = foo', aby całkowicie zmienić, na którą Personę wskazywała zmienna dzwoniącego, a nie tylko zawartość aktualnie wskazano na osobę – Amber