Presentation is loading. Please wait.

Presentation is loading. Please wait.

Ogrodje .NET Temelj za izgradnjo aplikacij nove generacije

Similar presentations


Presentation on theme: "Ogrodje .NET Temelj za izgradnjo aplikacij nove generacije"— Presentation transcript:

1

2 Ogrodje .NET Temelj za izgradnjo aplikacij nove generacije
Nov celovit programski model Temelji na standardih Korak proti integraciji Ogrodje .NET sestavlja: Skupno izvajalno okolje (Common Language Runtime - CLR) Knjižnica razredov .NET Microsoft-ova implementacija CLI-ja (CLI – Common Language Infrastructure)

3 Common Language Specification Common Language Runtime
Ogrodje .NET Ogrodje .NET skupno izvajalno okolje (CLR) knjižnica razredov .NET ... Common Language Specification Web Services Windows Forms ASP.NET ADO.NET and XML Base Class Library Common Language Runtime Operating System

4 Common Language Specification Common Language Runtime
Ogrodje .NET VB C++ C# JScript Common Language Specification Web Services Windows Forms ASP.NET ADO.NET and XML Base Class Library Common Language Runtime Operating System

5 Vsebina

6 Značilnosti C#

7 Novosti v C#

8 Hello world

9 Živjo svet- Značilnosti
using in namespace organizacija kode manj imenskih konfliktov class vse je v razredih (ali njihovih variacijah) Main vhodna točka programa v eni izmed štirih različic static: metoda razreda (in ne objektov) Console.WriteLine("...") uporaba razreda in njegove metode iz knjižnice knjižnica ni del C#

10 Struktura programov C#

11 Program, sestavljen iz dveh datotek

12 Tipi

13 Poenoten sistem tipov

14 Vrednostni tipi: sklicni tipi

15 Tipi Klasifikacija Vrednostni tipi (value types)
spremenljivka hrani sámo vrednost vrednost shranjena na skladu (ali "inline") prirejanje je kopiranje vrednosti Sklicni tipi (reference types) spremenljivka hrani sklic na vrednost vrednost shranjena na kopici prirejanje je kopiranje sklica podvrženi smetarju sem sodijo tudi kazalčni tipi (pointer types) uporablja se le v posebnih okoliščinah niso podvrženi smetarju Ko razlagaš tem KJE JE SHRANJENA VREDNOST prikaži NASLEDNJI DVE PROSOJNICI

16 Tipi Vrednostni tip

17 Tipi Sklicni tip

18 Preprosti tipi

19 Kompatibilnost med preprostimi tipi

20 Naštevni tipi (enumeration types)

21 Operacije na naštevnih vrednostih

22 Polja

23 Večdimenzijska polja

24 Razred System.String

25 Strukture

26 Razredi

27 Razlike med razredi in strukturami

28 Boxing in unboxing Boxing uporabljamo, ko pri vrednostnih tipih potrebujemo sklic (referenco) na primer: polje mešanih tipov = polje nad tipom object Java to rešuje z razredi primitivnih tipov V C# so tudi vrednostni tipi izpeljani iz razreda object ni preprek, da ne bi do vrednostnih tipov dostopali preko sklica int value; object boxedValue = value; //boxing value = (int)boxedValue; //unboxing

29 Boxing in unboxing

30 Boxing in unboxing

31 Izrazi

32 Izrazi in operatorji Večina operatorjev je enakih kot pri C++ in Javi
logični && || ^ aritmetični * / + - % << >> primerjalni == != < > >= <= ostali x.y f(x) a[x] new ?: itd... Malo drugače & in | sta za tip bool logična operatorja s popolno evaluacijo Drugače is : testira tip (v stilu Javanskega instanceof) as : pretvorba tipa brez proženja izjem typeof : vrne tip

33 Vrstni red izvajanja operatorjev
vrstni red izvajanja operatorji določa prioriteta a=b+c*d; se bo izvedel kot a=b+(c*d); vrstni red izvajanja operatorjev z enako prioriteto določa asociativnost z leve proti desni (vsi binarni operatorji, razen operatorjev prirejanja) z desne proti levi (operatorji prirejanja in pogojni operator ?: ) x-y-z; se bo izvedel kot (x-y)-z; a=b=c; se bo izvedel kot a=(b=c); Prioriteto in povezovanje operatorjev lahko kontroliramo z uporabo oklepajev

34 Vrstni red izvajanja operatorjev
vrsta operatorji primarni x.y f(x) a[x] x++ x-- new typeof checked unchecked unarni + - ! ~ ++x --x (T)x multiplikativni * / % aditivni + - pomik << >> relacijski in pretvorba tipov < > <= >= is as enakost == != logični AND & logični XOR ^ logični OR | pogojni AND && pogojni OR || pogojni c? x: y prireditev = *= /= %= += -= <<= >>= &= ^= |= PRIORITETA

35 Preverjanje prekoračitve

36 typeof in sizeof

37 Deklaracije

38 Prostor deklaracij

39 Imenski prostori (namespaces)

40 Uporaba drugih imenskih prostorov

41 Bloki

42 Deklaracija lokalnih spremenljivk

43 Stavki

44 Preprosti stavki

45 Stavek if

46 Stavek switch

47 switch z goto

48 Zanke

49 Stavek foreach

50 Skoki

51 Stavek return

52 Razredi in strukture

53 Vsebina razredov ali struktur

54 Razredi

55 Strukture

56 Določba vidnosti

57 Članske spremenljivke (fields) in konstante

58 Statične članske spremenljivke in konstante

59 Metode

60 Statične metode

61 Parametri

62 Prenašanje parametrov
ref prenašanje po referenci out prenašanje neinicializirane spremenljivke po referenci // definicija metode static void Zamenjaj(ref int i, ref int j) {...} // klic Zamenjaj(ref a, ref b);

63 Spremenljivo število parametrov

64 Preoblaganje metod

65 Razred - konstruktorji
Dve vrsti: konstruktorji izvodov ("klasični") definira kaj je potrebno storiti ob ustvarjanju izvoda (predmeta) metoda z imenom razreda, ki nima vračajočega tipa lahko so preobloženi statični konstruktorji Definira, kaj je potrebno storiti ob ustvarjanju razreda statična metoda z imenom razreda, ki nima vračajočega tipa in je brez argumentov ter nima pridevnikov za dostop

66 Razredni konstruktorji

67 Privzeti (default) konstruktor

68 Konstruktorji za strukture

69 Statični konstruktorji

70 Destruktorji

71 Lastnosti (properties)

72 Lastnosti (nadaljevanje)

73 Indekserji

74 Razredi – indekserji Indekserji (indexers) razširitev lastnosti
omogočajo izgradnjo poljubnih indeksiranih vsebovalnikov (containers) uporaba tako izgrajenih vsebovalnikov se ne razlikuje od vgrajenih indeks je lahko poljubnega tipa class Flota { public Ladja[] zbirka = new Ladja[10]; public int this[int index] { get { return zbirka[index].Prostornina; }

75 Indekserji: še en primer

76 Preoblaganje operatorjev

77 Operatorji pretvorbe

78 Gnezdeni tipi

79 Kako naprej? Konec prvega dela Skok na drugi del


Download ppt "Ogrodje .NET Temelj za izgradnjo aplikacij nove generacije"

Similar presentations


Ads by Google