40
C# Arkadiusz Beer [email protected] Świat pięknego kodu

C sharp

Embed Size (px)

DESCRIPTION

One of my first c# present

Citation preview

Page 1: C sharp

C# Arkadiusz Beer

[email protected]Świat pięknego kodu

Page 2: C sharp

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

Page 3: C sharp

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

Page 4: C sharp

ZAŁOŻENIA C#

Programowanie obiektowe Proste i szybkie programowanie Garbage collection Język pisania Elastyczność XML

Page 5: C sharp

OBIEKTOWOŚĆ C# CD.

Enkapsulacja Abstrakcja Polimorfizm Dziedziczenie

Page 6: C sharp

OBIEKTOWOŚĆ C# CD.DZIEDZICZENIE

Page 7: C sharp

OBIEKTOWOŚĆ C# CD.POLIMORFIZM

Page 8: C sharp

WŁAŚCIWOŚCI

Page 9: C sharp

INTERFACE

Page 10: C sharp

DELEGATY

Page 11: C sharp

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”);

Page 12: C sharp

EXPLICIT I IMPLICIT

Page 13: C sharp

CHECKED I UNCHECKED

Page 14: C sharp

CHECKED I UNCHECKED

Page 15: C sharp

CHECKED I UNCHECKED

Page 16: C sharp

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

Page 17: C sharp

MAKRODEFINICJE

#if, #endif, #else #region #endregion #error #warning #define #undef #pragma #line

Page 18: C sharp

C# 2.0

Page 19: C sharp

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

Page 20: C sharp
Page 21: C sharp

KLASY CZĘŚCIOWE

Page 22: C sharp

KLASY CZĘŚCIOWE

Page 23: C sharp

KLASY CZĘŚCIOWE

Page 24: C sharp

KLASY CZĘŚCIOWE

Page 25: C sharp

METODY ANONIMOWE

DALEJ ->

Page 26: C sharp

PROBLEM

Page 27: C sharp

OPERATOR ??I TYPY NULLABLE

Page 28: C sharp

C# 3.0

Page 29: C sharp

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

Page 30: C sharp

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

Page 31: C sharp

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

Page 32: C sharp

ROZSZERZENIA TYPÓW

Page 33: C sharp

TYPY ANONIMOWE

Page 34: C sharp

WYRAŻENIE LAMBDA

Page 35: C sharp

WYRAŻENIE LAMBDA

Page 36: C sharp

LINQ

Jeżeli wystarczy czasu Ale to będzie na przyszłość

Page 37: C sharp

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

Page 38: C sharp

POWIĄZANE C#

Parallel C#Spec#Polyphonic C#

F#J#JScript .NETC++/CLIVisual Basic .NETIron(Ruby Python Lisp)NemerleA# Boo OxygenePhalanger

Page 39: C sharp

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/

Page 40: C sharp

DZIĘKUJE ZA UWAGE

Pytania [email protected]

Mam nadzieje że wyrobiłem się z czasem