Download presentation
Presentation is loading. Please wait.
Published byOscar Wilcox Modified over 6 years ago
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
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.