Professional Documents
Culture Documents
HCM
TRUNG TM TIN HC
TRUNG TM TIN HC
- 8 tit 2
TRUNG TM TIN HC
.NET Framework l thnh phn nn tng cho mi cng pht trin ng g dng g .NET c p .NET Framework c thit k nhm h tr cho cc trnh ng dng v cc service th h k tip Cung cp cc lp i tng (Class) c th gi thi hnh cc chc nng m i tng cung cp Cung cp hn 5000 lp i tng gi thc hin cc loi dch v t h iu hnh
TRUNG TM TIN HC
TRUNG TM TIN HC
TRUNG TM TIN HC
TRUNG TM TIN HC
Cc kiu d liu
Khi nim Cch to v s dng cc kiu d liu Chuyn i gia cc kiu d liu
TRUNG TM TIN HC
Cc kiu d liu
Khi nim
Trong cc T ngn ng lp trnh t h cp cao lun l c cc qui i nh v nh ngha d liu trong lp trnh Kiu l khi nim m ch vic nh ngha hnh thi thi, cu trc v gi tr ca d liu, bao gm cch biu din v x l ca d liu Kiu d liu trong .NET c m t chi tit trong mt cu trc gi l Common Type System (CTS)
TRUNG TM TIN HC
Cc kiu d liu
Khi nim
Kiu gi tr (Value Types) Kiu tham chiu (Reference Types) Kiu do ngi dng nh ngha (User-defined Types) Kiu lit k (Enumerations)
Mi kiu d liu trong .NET l mt i tng, ngha l n c cc thuc tnh v phng thc ring. Mt trong nhng phng thc thng dng nht l Parse v ToString
9
TRUNG TM TIN HC
Cc kiu d liu
10
TRUNG TM TIN HC
Cc kiu d liu
Bao gm cc kiu d liu s hc, c ngy gi, kiu lun l, l kiu do ngi dng nh ngha v kiu lit k Cc bin c kiu gi tr l nhng bin cha trc tip d liu ca chng thay v cha mt tham chiu ti d liu c lu tr ti mt ni no trong b nh (memory) Cc instance ca kiu gi tr c lu tr trong mt vng nh c gi l stack, ti thi im vn hnh (runtime) c th to (create), c (read), cp nht (update), v loi b (remove) ( ) chng g mt cch nhanh chng g
11
TRUNG TM TIN HC
Cc kiu d liu
Cc kiu gi tr c xy dng sn (Built-in types) Cc kiu do ngi dng nh ngha (User-defined (User defined types) Cc kiu lit k (Enumerations)
12
TRUNG TM TIN HC
Cc kiu d liu
L cc kiu c s do .NET NET Framework cung cp, p cc kiu d liu khc u c xy dng da trn cc kiu d liu c s ny
Tt c cc kiu dng s (numeric types) c xy dng sn u thuc loi kiu gi tr Bng sau lit k cc kiu s thng dng nht:
13
TRUNG TM TIN HC
Kiu/Alias C# System.SByte y y /sbyte y System.Byte/byte System.Short/short System Integer/int System.Integer System.UInteger/uint System.Long/long System.Single/float System.Double/double System.Decimal/decimal
Kch thc Min gi tr (Range) 1 byte y 1 byte 2 bytes 4 bytes 4 bytes 8 bytes 4 bytes 8 bytes 16 bytes -128 127 0 255 -32768 32767 -2147483648 2147483648 2147483647 0 4294967295 -9223372036854775808 9223372036854775807 -3.402823E+38 3.402823E+38 -1.79769313486232E+308 1.79769313486232E+308 1 79769313486232E 308 -79228162514264337593543950335 79228162514264337593543950335
14
TRUNG TM TIN HC
Kch thc Min gi tr (Range) 2 bytes y 4 bytes 8 bytes N/A N/A 1/1/0001 12:00:00 AM 12/31/9999 /3 /9999 11:59:59 59 59 PM
Vic s dng alias hon ton tng ng vi cch s dng tn kiu theo cch y , tuy y nhin hu ht cc lp trnh vin s dng alias chng ngn gn hn. Khi gn cc bin kiu gi tr vi nhau, d liu c sao chp t bin ny ti bin kia v c lu tr ti hai v tr khc nhau trn stack Cc kiu gi tr thng c dng trnh by cc gi tr n gin
15
TRUNG TM TIN HC
Cc kiu d liu
Kiu do ngi dng nh ngha cn c gi l cc struct. Ging nh cc kiu gi tr khc, cc instance ca cc kiu do ngi dng nh ngha c lu tr trn stack v cha trc tip d liu ca chng struct l mt kiu cu trc hn hp ca nhiu kiu khc nhm mc ch d dng lm vic vi dng d liu quan h struct c cu trc tng t nh class, tuy nhin struct c kiu gi tr cn class c kiu tham chiu.
16
TRUNG TM TIN HC
Cc kiu d liu
S in thoi H v t tn a ch lin lc
17
TRUNG TM TIN HC
Cc kiu d liu
Hc sinh c th c lu tr nh l mt struct
TRUNG TM TIN HC
Cc kiu d liu
}
19
TRUNG TM TIN HC
Cc kiu d liu
20
TRUNG TM TIN HC
Cu trc (Structure)
21
TRUNG TM TIN HC
Cc kiu d liu
Kiu lit k l cc k hiu c cng mt h (c lin quan vi nhau) c cc gi tr c nh. Kiu lit k c dng cung cp mt danh sch chn la cho lp trnh vin s dng
22
TRUNG TM TIN HC
Cc kiu d liu
V d:
enum Titles : int { Mr, Ms, Mrs, Dr };
Nu bn to mt instance ca kiu Titles , Visual Studio s hin th mt danh sch cc gi tr c sn gn gi tr cho bin
TRUNG TM TIN HC
Cc kiu d liu
Lu : khi khai bo kiu lit k ch c th s dng cc kiu s nguyn nh byte, sbyte, short, ushort, int, uint, long hoc ulong.
24
TRUNG TM TIN HC
Cc kiu d liu
Cc kiu gi tr c mt khi to (constructor) ngm nh, do vy bn khng cn phi bao gm trong phn khai bo t kha New nh khi khai bo vi class V d:
bool b = false;
25
TRUNG TM TIN HC
Cc kiu d liu
.NET 2.0 cung cp mt kiu mi l kiu Nullable cho php kim tra liu mt bin c gn gi tr hay cha V d:
Nullable<bool> b = null; // C# cho php s dng k hiu th hin nhanh nh sau bool? b = null;
26
TRUNG TM TIN HC
Cc kiu d liu
Mt bin c kiu nullable cho php s dng cc thnh vin HasValue v Value. Bn c th s dng HasValue kim tra liu c hay khng mt gi tr c thit lp V d:
if (b.HasValue) Console.WriteLine("b is {0}.", b.Value); else Console WriteLine("b Console.WriteLine( b is not set. set "); );
27
TRUNG TM TIN HC
Cc kiu d liu
28
TRUNG TM TIN HC
Cc kiu d liu
Cc kiu tham chiu lu tr a ch d liu ca chng, chng cng c hiu nh l mt con tr (pointer), trn stack. D liu thc s m cc tham chiu a ch tham chiu ti c lu tr trong mt vng b nh c gi l heap Hu ht cc kiu trong .NET Framework l kiu tham chiu. Cc kiu tham chiu cung cp rt nhiu cho tnh linh ng, uyn chuyn, chng mang n kh nng thc thi hon ho khi gi chng ti cc phng thc
29
TRUNG TM TIN HC
Cc kiu d liu
Thi im vn hnh (runtime) qun l b nh bng vic s dng heap thng qua mt tin trnh c gi l garbage collection. Garbage collection s khi to b nh theo chu k da theo nhu cu bng cch loi b cc i tng khng cn c tham chiu na.
C khong 2500 kiu tham chiu c xy dng sn trong .NET NET F Framework k (kh (khng c dn xut t System.ValueType) Cc kiu tham chiu thng dng:
30
TRUNG TM TIN HC
Cc kiu d liu
TRUNG TM TIN HC
Cc kiu d liu
V d s dng string:
string s = "this is some text to search"; s = s.Replace("search", p ( , "replace"); p ); Console.WriteLine(s);
32
TRUNG TM TIN HC
Cc kiu d liu
Ch chui sau cng l c mt tham chiu; ba chui kia s c dispose khi cng c thu gom rc lm vic (garbage collection)
33
TRUNG TM TIN HC
Cc kiu d liu
Vic ngn nga cc loi chui tm thi ny gip trnh gom rc khng cn thit, ci thin hiu sut hot ng C mt s cch ngn nga cc chui tm thi:
S dng cc phng thc Concat, Join, hay Format ca lp String ghp nhiu item trong mt cu lnh n l S dng lp StringBuilder to cc chui dng dynamic (c th bin i - mutable)
34
TRUNG TM TIN HC
Cc kiu d liu
35
TRUNG TM TIN HC
Cc kiu d liu
Chuyn i ngm nh: C# chp nhn s chuyn kiu ngm nh nu kiu ch c th thch hp vi tt c cc gi tr c th nhn t kiu ngun. V d:
int i = 1; double d = 1.0001; d = i; // S chuyn i c chp nhn.
36
TRUNG TM TIN HC
Cc kiu d liu
Chuyn i tng minh: tt c cc bin trong C# phi c khai bo kiu mt cch r rng, v trnh bin dch kim tra tnh nht q qun v kiu ca biu thc. C th thc hin vic chuyn i kiu tng minh bng cch s dng ton t chuyn kiu (hay p kiu - cast operator) n c dng: operator),
Bin = (kiu cn chuyn i)<biu thc chuyn i>
37
TRUNG TM TIN HC
Cc kiu d liu
V d:
long L; L = 32769; int I = (int) L;
38
TRUNG TM TIN HC
Cc kiu d liu
C ch Boxing v Unboxing: boxing chuyn i mt kiu gi tr ti mt kiu tham chiu, v unboxing chuyn i mt kiu tham chiu ti mt kiu g gi tr. V d:
int i = 123; object o = (object) i; // c ch boxing object j = 123; i t k = (int) int (i t) j; j // c ch h unboxing b i
39
TRUNG TM TIN HC
Cc kiu d liu
40
TRUNG TM TIN HC
Cc kiu d liu
TRUNG TM TIN HC
Cc kiu d liu
Cc thnh vin public c chia s ca lp System.Convert c s dng g chuy yn i mt kiu d liu c s c th ti kiu d liu c s khc S dng Object Browser xem v tm hiu nhng phng thc chuyn i sn c ( m cng c Object Browser: chn thc n view Object Browser)
42
TRUNG TM TIN HC
43
TRUNG TM TIN HC
Cc kiu d liu
TRUNG TM TIN HC
Cc kiu d liu
45
TRUNG TM TIN HC
Cc kiu d liu
46
TRUNG TM TIN HC
TRUNG TM TIN HC
48
TRUNG TM TIN HC
Bin v Hng
49
TRUNG TM TIN HC
Bin v Hng
Khi nim
trong
Bin c th lu tr d liu dng chui, dng s, dng ngy Hng l nhng gi tr khng thay i trong sut qu trnh V d:
So_a, So_b: cc bin lu gi tr 2 s a v b Ket_qua: K t bin lu kt qu cc php h t tnh h Pi: hng s lu gi tr 3.1415 (hng s Pi)
50
TRUNG TM TIN HC
Bin v Hng
Khng c khong trng Khng c du Khng t trng vi cc t kha Khng s dng cc k t t bit (#, $, %, +, -, ) Khng g bt u bng g s
51
TRUNG TM TIN HC
Bin v Hng
Gn gi tr cho bin: Tn_bi Tn bin = gi tr; Ch : c th khai bo v khi to gi tr cho bin cng lc lc.
V d: string ho_ten = Nguyn Vn An;
52
V d: tuoi = 15;
TRUNG TM TIN HC
Bin v Hng
c im
Kiu d liu khai bo bin trong C# u l kiu i tng Mi kiu i tng u i km:
Thuc tnh (property) Phng thc (method)
53
TRUNG TM TIN HC
Bin v Hng
c im
Tn bin.Thuc tnh: ly thng tin lin quan n i tng Tn bin.Phng g thc: i t ng g thc hin hnh ng g
V d:
int So_a = int.Parse(txtSo ( _a.Text); ); MessageBox.Show(S a: + So_a.ToString());
54
TRUNG TM TIN HC
Bin v Hng
55
TRUNG TM TIN HC
56
TRUNG TM TIN HC
Cc ton t
Ton t gn Ton t lun l Ton t so snh Ton t s hc Ton t dch chuyn bit Kim tra kiu d liu
57
TRUNG TM TIN HC
Cc ton t
Ton t s hc
Ton t ni chui
58
TRUNG TM TIN HC
Cc ton t
Ton t gn
59
TRUNG TM TIN HC
Cc ton t
Ton t gn
V d 1: php gn cc gi tr n l
int a, a b, b c; a = 1; // OK. b = a; // OK. a = c; // Li : Bin ph hi c khi to tr c khi kh s dng. 1 = a; // Li : Trong php gn, ch phi l mt bin. c = (a + b); // OK. (a + b) = c; // Li : Trong php gn, ch phi l mt bin.
60
TRUNG TM TIN HC
Cc ton t
Ton t gn
61
TRUNG TM TIN HC
Cc ton t
Ton t gn
62
TRUNG TM TIN HC
Cc ton t
Ton t gn
Ton t kt hp Null
bool? a = true; bool? b = false; object c = null; C Console.WriteLine(|{0,4}|{1,4}|{2,4}|{3,4}|, (|{ }|{ }|{ }|{ }| a ?? b, a ?? c, c ?? b, c ?? c); Kt qu xut ra mn hnh:
63
TRUNG TM TIN HC
Cc ton t
64
TRUNG TM TIN HC
Cc ton t
65
TRUNG TM TIN HC
Cc ton t
Kt qu xut ra mn hnh:
66
TRUNG TM TIN HC
Cc ton t
Ton t logic
Tn Logical NOT Logical AND Logical OR Logical XOR K hiu ~a a&b a|b a^b ngha Php o gi tr bit Tr v 1 nu c hai bit u l 1, ngc li tr v 0 Tr v 0 nu c hai bit u l 0, ngc li tr v 1 Tr v 1 nu v ch nu mt trong hai bit l 1, ngc li tr v 0
67
TRUNG TM TIN HC
Cc ton t
Ton t logic
a 1 1 0 0 b 1 0 1 0
68
TRUNG TM TIN HC
Cc ton t
69
TRUNG TM TIN HC
Cc ton t
Ton t so snh
70
TRUNG TM TIN HC
Cc ton t
71
TRUNG TM TIN HC
Cc ton t
72
TRUNG TM TIN HC
Cc ton t
Kt q qu hin th ra mn hnh:
73
TRUNG TM TIN HC
Cc ton t
hu t. Trong trng hp tin t, cc ton t tng hoc gim c t trc bin kiu d liu n gin.
++a a = a + 1 --a a = a 1
int b = 6; int a = ++b; a = b++; ; ++b; a = - -b; a = b- -;
// // // // //
a a a a a
= = = = =
7, 7, 7, , 8, 8,
b b b b b
= = = = =
7 8 9 8 7
74
TRUNG TM TIN HC
Cc ton t
Kt qu xut ra mn hnh:
75
TRUNG TM TIN HC
Cc ton t
Trong C# kim tra kiu s dng ton t: is v as. C php: Nu Kt_qu_kim l true Biu_thc c th chuyn
Kt_qu_kim = Biu_thc is Kiu
i thnh cng ti Kiu vi vic p kiu tng minh hoc boxing/unboxing ngm nh. nh Nu Biu_th u thc l null Kt_qu_kim l false.
76
TRUNG TM TIN HC
77