Kategoria: C# Dodane przez marcin90

Jaka jest różnica pomiędzy polami a właściwościami?

1 odpowiedź

2 0 Dodane 10-06-2018 przez marcin90
Pole to zmienna dowolnego typu zadeklarowana w klasie.
public class Car 
{
   private int MaxSpeed;
   private Drvier drvier;
}
Właściwości w C# to użyteczna konstrukcja językowa stanowiąca swego rodzaju rozszerzenie dla pól.
Korzystając z właściwości możemy umożliwić dostęp do prywatnych składowych klasy, ale odczyt oraz edycja pola odbywają się na zasadach określonych we właściwościach.
 public class Car
{
   private int _MaxSpeed = 100;
   
   public int MaxSpeed
   {
      get
      {
         return _MaxSpeed;
      }
      set
      {
         _MaxSpeed =value;
      }
   }
}
Co w przypadku jeżeli ktoś spróbowałby ustawić _maxSpeed na wartość mniejszą od zera?
Dokonując drobnych zmian w powyższym kodzie jesteśmy w stanie się przed tym zabezpieczyć.
 public class Car
{
   private int _MaxSpeed = 100;
   
   public int MaxSpeed
   {
      get
      {
         return _MaxSpeed;
      }
   }

   public void SetMaxSpeed(int value)
   {
      if(value < 0)
      {
         Console.WriteLine("Maksymalna prędkość nie może być mniejsza od 0.");
         return;
      }
      _MaxSpeed = value;
   }
}
Ograniczamy dostęp do _MaxSpeed. Odczyt jest możliwy jedynie za pomocą właściwości.
Edytować zmienną możemy jedynie za pomocą funkcji SetMaxSpeed (int value), gdzie umieszczona jest także prosta walidacja wartości.
Oczywiście jest to bardzo uproszczony kod, jednak oddaje on główną zaletę stosowania właściwości.

Dodaj swoją wersję odpowiedzi

Dodajesz odpowiedź jako gość. Zaloguj się się by uzyskać dostęp do rankingu oraz powiadomień.