C# Inicjalizatory obiektów oraz kolekcji Automatycznie implementowane właściwości Typy anonimowe Lambda METODY CZĘŚCIOWE(PARTIAL METHODS)

14:09 0 Comments A + a -

Inicjalizatory obiektów oraz kolekcji
1 //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

var frankenstein = new {hair="black", skin="green", teethCount=64}

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


.