C# Inicjalizatory obiektów oraz kolekcji Automatycznie implementowane właściwości Typy anonimowe Lambda METODY CZĘŚCIOWE(PARTIAL METHODS)
Inicjalizatory obiektów oraz kolekcji1 //inicjalizator kolekcji 2 List<string> auta = new List<string>{"Audi","Mercedes","BMW"};3 4 //standardowa inicjalizacja 5 List<string> auta1 = new List<string>();6 auta1.Add("Audi");7 auta1.Add("Mercedes");8 auta1.Add("BMW");
WoW ależ odkrycie
Automatycznie implementowane właściwości
1 public string Device { get; set; } WOW2 3 ////a w c# 6.0 4 5 public string Device { get; set; }=”something”; WOW WOW 6
Typy anonimowe
Metody rozszerzające
Metody te pozwalają rozszerzyć funkcjonalność typów już istniejących. Mogą być one zadeklarowane tylko w klasach statycznych.
Przykład:
public static int ToInt32(this string s) { return Convert.ToInt32(s) ; }
Metoda ta poszerza możliwości typu string o nową metodę ToInt32 (działanie metody myślę, że nie wymaga dodatkowego tłumaczenia). To co wyróżnia tę metodę od innych jest słowo kluczowe this w parametrze. Dzięki takiej metodzie będzie możliwe użycie poniższego kodu:
string s = "1"; int i = s.ToInt32();
Tym sposobem rozszerzyliśmy klasę string bez jawnego dziedziczenia z niej, co wcześniej było niewykonalne.
Wyrażenie Lambda
Wyrażenie to (zapisywane jako => ) pozwala rozszerzyć możliwości delegacji. Poniższy przykład demonstruje użyje wyrażenia Lambda:
class Program { delegate void DemoDelegate(); static void Main(string[] args) { DemoDelegate myDelegate = () => Console.WriteLine("Pierwsza metoda") ; myDelegate(); myDelegate = () => Console.WriteLine("Druga metoda") ; myDelegate(); } }