SkillsTest.pl C# pytania i zadania rekrutacyjne Jaka jest różnica pomiędzy polami a właściwościami?

: 2017-09-13 | Nr 5 z 51

Pytanie

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

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.

Polecamy

Na co możesz wydać swoje 15k?

Zabawki dla dwulatka