Encapsulation C # newbie
Nowość w C # i rozumiem, że hermetyzacja jest po prostu sposobem „ochrony danych”. Ale nadal jestem niejasny. Myślałem, żepunkt get i set accessors miały dodawać testy w ramach tych metod, aby sprawdzić, czy parametry spełniają określone kryteria, przed zezwoleniem zewnętrznej funkcji na pobranie i ustawienie czegokolwiek, na przykład:
private string myName;
public string MyName;// this is a property, speical to c#, which sets the backing field.
private string myName = "mary";// the backing field.
public string MyName // this is a property, which sets/gets the backing field.
{
get
{
return myName;
}
set
{
if (value != "Silly Woman"){
myName = value;
}
}
}
Ale widziałem kod w c #, który wygląda tak:
public string MyName { get; set; }
Dlaczego miałbyś po prostu dostać i ustawić z niczego tam, - czy to nie to samo, co publiczne deklarowanie swojego zaplecza? Jeśli możesz po prostu zdobyć i ustawić z zewnątrz, dlaczego nie zrobiłbyś tego bezpośrednio?