Upload
arek-bee
View
1.654
Download
7
Embed Size (px)
DESCRIPTION
One of my first c# present
Citation preview
C# Arkadiusz Beer
[email protected]Świat pięknego kodu
UWAGI
Nie mam dużego doświadczenia i wiedzy z c# Przepraszam za błędy Nie mówię, że c# jest lepszy od javy, c++,
delphi ... Przepraszam za wielkość, jakość i błedy w filmikach
Celem prezentacji jest przedstawienie ewolucji języka oraz wprowadzić widzów (czyli WAS) w świat kodu
AGENDA
• Obiektowość C# cd.– Interfejsy
• C# 2.0– Generyczne
• C# 3.0– LINQ (jak będzie czas)– Var– Extension methods
• Co w C# 4.0
ZAŁOŻENIA C#
Programowanie obiektowe Proste i szybkie programowanie Garbage collection Język pisania Elastyczność XML
OBIEKTOWOŚĆ C# CD.
Enkapsulacja Abstrakcja Polimorfizm Dziedziczenie
OBIEKTOWOŚĆ C# CD.DZIEDZICZENIE
OBIEKTOWOŚĆ C# CD.POLIMORFIZM
WŁAŚCIWOŚCI
INTERFACE
DELEGATY
AS I IS
As dokonuje konwersji na dany typ Object o=....KlasaOsoba ja= o as KlasaOsoba
Is sprawdza czy objekt jest danym typem if(o is KlasaOsoba)
Console.WriteLine(„to jest osoba”);
EXPLICIT I IMPLICIT
CHECKED I UNCHECKED
CHECKED I UNCHECKED
CHECKED I UNCHECKED
O CZYM NIE POWIEDZIAŁEM
Lock (sekcji krytycznej) Volatile Unsafe (blok lub modyfikator metody) Stackalloc (wymaga unsafe) Fixed Params Extern (implementacja na zewnącz dla
atrybutu DllImport ) Atrybuty
MAKRODEFINICJE
#if, #endif, #else #region #endregion #error #warning #define #undef #pragma #line
C# 2.0
TYPY GENERYCZNE
Podobne do szblonów w c++
Generyczne w C# Templeity w C++
Można traktować jako cos podobnego klasy
Jako makra
Tworzenie instancji typów generycznych odbywa się w czasie wykonywania programu
Szblony są przetwarzane przez kompilator
Ścisła kontrola typu Brak kontroli
KLASY CZĘŚCIOWE
KLASY CZĘŚCIOWE
KLASY CZĘŚCIOWE
KLASY CZĘŚCIOWE
METODY ANONIMOWE
DALEJ ->
PROBLEM
OPERATOR ??I TYPY NULLABLE
C# 3.0
TYP VAR
var jakisInt = 12;var jakisDouble = 12D;var jakasTablicaChar = new char[] {‘A’, ’l’, ‘a’};var jakisString = „Ala ma kota”;var jakisObjekt = new Person(„Jacek”);
• Nie wolno:– var x;– var SomeMethod(var obj);
• Musi być wewnątrz metody
GENEROWANE WŁAŚCIWOŚCI
private string imie;public string Imie;{
get {return imie;}set {imie=value;}
}
public string Imie{get;set;}
public string Nazwisko{get; private set;}
Nie dla logiki biznesowej Nie dla readonly
KONSTRUKTORY KOLEKCJI
List<String> imiona= new List<string>()imiona.Add(„Arek”);imiona.Add(„Monika”);imiona.Add(„Zosia”);
List<String> imiona = new List<String>(){„Arek”,”Monka”, „Zosia”};
ROZSZERZENIA TYPÓW
TYPY ANONIMOWE
WYRAŻENIE LAMBDA
WYRAŻENIE LAMBDA
LINQ
Jeżeli wystarczy czasu Ale to będzie na przyszłość
CO NOWEGO W C# 4.0
Nazwane i opcjonalne parametry metody, indexera i konstruktorów
Typ dynamiczny Kastowanie kolekcji (interfejsów), gdzie
elementy dziedziczą po sobie Parallel extensions Kontrakty kodów
POWIĄZANE C#
Parallel C#Spec#Polyphonic C#
F#J#JScript .NETC++/CLIVisual Basic .NETIron(Ruby Python Lisp)NemerleA# Boo OxygenePhalanger
LINKI (NIE LINQI)
http://en.wikipedia.org/wiki/C_Sharp_(programming_language)
http://msdn.microsoft.com/ http://www.codeguru.pl http://www.odetocode.com/articles/738.aspx http://msdn2.microsoft.com http://www.codeproject.com http://wiki.csharp-online.net/