Professional Documents
Culture Documents
C# and .NET - Lession 3
C# and .NET - Lession 3
NET Framework
Bi 3: Lp trnh nng cao trong C#
on Quang Minh
minhdqtt@gmail.com
http://www.VTPortal.net
Last update: 21. Dec 2006
Lp tr
trnh nng cao trong C# - Editor:
Editor:
o
on Quang Minh
Mc lc
Exceptions
User-Defined Casts
Delegates
Events
Generics
Preprocessor Directive
Unsafe code
Lp tr
trnh nng cao trong C# - Editor:
Editor:
o
on Quang Minh
Lp tr
trnh nng cao trong C# - Editor:
Editor:
o
on Quang Minh
Lp tr
trnh nng cao trong C# - Editor:
Editor:
o
on Quang Minh
}
catch (Exception e)
{
}
finally
{
}
Lp tr
trnh nng cao trong C# - Editor:
Editor:
o
on Quang Minh
User-Defined Casts
Ton t p kiu as
Chng ta thng xuyn phi p kiu trong C#
C 2 loi p kiu trong C#: implicit (an ton tuyt i),
explicit(c ri ro)
C th p kiu t lp k tha v lp c s, song
khng th lm ngc li
C th p kiu qua li gia 2 lp, khi cn khai bo
hm p kiu
public static implicit operator conv-type-out ( convtype-in operand )
public static explicit operator conv-type-out ( convtype-in operand )
Lp tr
trnh nng cao trong C# - Editor:
Editor:
o
on Quang Minh
Delegates
delegate
C nhng cng vic khng xc nh lc bin dch, ch
xc nh lc thc thi.
Cc thut ton tng qut, v d sp xp: khng th
nh ngha phng thc so snh 2 i tng bt k
delegate l kiu tham chiu, ging nh class (trong
C#), v ngha ging con tr hm trong C++
[attributes] [modifiers] delegate result-type identifier
([formal-parameters]);
Lp tr
trnh nng cao trong C# - Editor:
Editor:
o
on Quang Minh
Delegates
delegate void MyDelegate(int i);
class Program
{
public static void Main()
{
TakesADelegate(new MyDelegate(DelegateFunction));
}
public static void TakesADelegate(MyDelegate SomeFunction)
{
SomeFunction(21);
}
public static void DelegateFunction(int i)
{
System.Console.WriteLine("Called by delegate with number: {0}.", i);
}
}
Lp tr
trnh nng cao trong C# - Editor:
Editor:
o
on Quang Minh
Events
S kin
Lp tr
trnh nng cao trong C# - Editor:
Editor:
o
on Quang Minh
10
Events
X l s kin
Nu mt component pht sinh mt s kin, c
th bt v x l s kin .
hander s kin trong Windows Form hoc
trong Web Form:
Khai bo component (v d button)
Khai bo hm x l s kin
Gn hm vo s kin
Lp tr
trnh nng cao trong C# - Editor:
Editor:
o
on Quang Minh
11
Generics
Generics
Cho php class, struct, interface, method s dng
kiu d liu m n lu tr nh l tham s u vo.
Khi nim ging nh template ca C++.
Generics xut hin nhm mc ch x l chnh xc
kiu ca d liu. V d, vi stack, nu khng c
generics th d liu coi nh cc object, nn i hi
phi p kiu khi x l, iu ny c th gy li run-time.
To v s dng Generics
Khai bo ging nh template trong C++: dng cp
du < >
S dng: phi ch nh chnh xc kiu d liu
Lp tr
trnh nng cao trong C# - Editor:
Editor:
o
on Quang Minh
12
Generics
V d s dng Generics
Khai bo:
13
Preprocessor Directives
#define and #undef
#if, #elif, #else, and #endif
#warning and #error
#region and #endregion
#line
Lp tr
trnh nng cao trong C# - Editor:
Editor:
o
on Quang Minh
14
Memory Management
C# t ng qun l b nh nh vo b thu gom
rc
B nh o trong Windows
Stack v heap
15
Unsafe Code
C# t qun l b nh, tuy nhin c nhng
lc chng ta cn s dng con tr.
Dng t kha unsafe ti vng lnh mun s
dng con tr
Phi c tham s bin dch unsafe khi dch
chng trnh
Con tr:
Cc khai bo v s dng tng t C++
Lp tr
trnh nng cao trong C# - Editor:
Editor:
o
on Quang Minh
16
17