C sharp

Preview:

DESCRIPTION

One of my first c# present

Citation preview

C# Arkadiusz Beer

arekbee@gmail.comŚ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/

DZIĘKUJE ZA UWAGE

Pytania arekbee@gmail.com

Mam nadzieje że wyrobiłem się z czasem