|

Właściwości C#

Właściwość to połączenie zmiennej z metodą. Posiadają metody Get i Set za pomocą których uzyskuje się dostęp do danych. Właściwości zazwyczaj mają publiczny dostęp Get, a ich nazwy tworzy się za pomocą konwencji PascalCase.

class Person
{
        private string _name; // pole (field)

        public string Name   // właściwość (property)
        {
            get { return _name; }   // get method
            private set { _name = value; }  // set method
        }
}

Skrócona wersja właściwości, gdzie zmienna tworzona jest automatycznie.

class Person
{
  public string Name { get; private set; }
}

Właściwości są tworem pomiędzy funkcją, a zmienną. Przechowuje wartość, ale podczas ustawiania lub pobierania można zastosować dodatkowe warunki.

  private string _name;
  public string Name 
  {
      get 
      { 
          return _name;
      }
      set
      {
          if(value.Trim().Length > 0)
          {
              _name = value;
          }
      }
  }




Name = "Hannah";
Name = "   ";
lblInfo.Content = Name;
  

Object initializer to sposób na tworzenie nowych obiektów w przypadku, gdy settery właściwości są ustawione jako public lub set zamieniony jest na init. W przypadku użycia inicjalizatora nie trzeba podawać wszystkich właściwości. Reszta zostanie zainicjalizowana wartościami domyślnymi dla swojego typu.

    class Product
    {
        public string Name {  get; set; }
        public double Price {  get; set; }
    }
    
    
    Product product1 = new Product
    {
        Name = "Dishwasher",
        Price = 1599.99
    };

Object initializer z konstruktorem (konstruktor zawsze wykonuje się jako pierwszy)

    class Product
    {
        public string Name {  get; set; }
        public double Price {  get; set; }

        public Product(string name)
        {
            Name = name;
        }
    }
    
    
    Product product1 = new Product("Fridge")
    {
        Price = 1599.99
    };
    
    
    

Użycie init, aby utrzymać ustawienie właściwości prywatne, ale móc skorzystać z inicjalizacji obiektu.

        public string Name {  get; set; }
        public double Price {  get; init; }

        public Product(string name)
        {
            Name = name;
        }
        
        
        Product product1 = new Product("Fridge")
        {
            Price = 1599.99
        };

Podobne wpisy

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *