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
};