You are on page 1of 40

Khoa CNTT Trng C Cng Nghip Tuy Ha

TM HIU NGN NG LP TRNH CSHAP(C#)

Nhm PNP

Bt u

GII THIU
1) Mc ch: Tm hiu nghin cu ngn ng CShap lm nn tng cho vic tip tc nghin cu k thut lp trnh mng. Qua nng cao tm hiu bit v trnh ca SV

GII THIU
CC VN CODE P DNG 2) Ni dung : NHM PNP TNG KT TI LIU

Nghin cu c chia lm hai giai on: 1. Giai on mt nghin cu nhng khi nim c bn ca CShap v lp trnh hng i tng trong CShap 2. Giai on hai nghin cu su k thut lp trnh mng c ci t trn ngn ng Cshap.

CC VN

GII THIU

C# v kin trc .NET


Mt s cng c h tr lp trnh C#

CC VN
CODE P DNG NHM PNP TNG KT TI LIU

Hng i tng trong C# Thao tc trn XML

C# V KIN TRC .NET

1. GII THIU

C# l mt trnh bin dch hng .NET, ngha l tt c cc m ca C# lun lun chy trn trn mi trng .NET Framework. iu dn n 2 h qu sau:
Cu trc v cc lp lun C# c phn nh cc phng php lun ca .NET ngm bn di. Trong nhiu trng hp, cc c trng ca C# thm ch c quyt nh da vo cc c trng ca .NET, hoc th vin lp c s ca .NET.

CC VN
CODE P DNG 2. NHM PNP TNG KT TI LIU

C# l mt ngn ng c lp. N c thit k c th sinh ra m ch trong mi trng .NET, n khng phi l mt phn ca .NET bi vy c mt vi c trng c h tr bi .NET nhng C# khng h tr v bn cng ng ngc nhin khi c nhng c trng C# h tr m .NET khng h tr.
chng hn nh qu ti ton t.

C# V CNG C H TR LP TRNH
Bn c th lp trnh Cshap bng bt c trnh son tho vn bn no V d nh notepad, Wordpad nhng lm tng nng xut ca lm vic ca cc lp trnh vin rt ngn thi gian vit code Ta nn s dng cc IDE h tr lp trnh. V d nh : B IDE: Microsoft Visual Studio cc phin bn 2003, 2005, 2008 v gn y nht l bn 2010 Bn cnh microsoft cn c cc bn min ph Express dnh cho Cc c nhn nghin cu hay hc tp.

GII THIU

CC VN
CODE P DNG NHM PNP TNG KT TI LIU

HNG I TNG TRONG C#


o C# da trn nn tng l C++ nn cc c php v khai bo bin cu trc lp .Gn nh tng t C++ v vy chng ta lt qua cc khi nim trn. Ta ch nghin cu cc khi nim c bn ca lp trnh hng i tng. o Ging nh java C# cng l ngn ng lp trnh hng i tng o Xt v d sau:

GII THIU

CC VN
CODE P DNG NHM PNP TNG KT TI LIU

V d

GII THIU

CC VN
CODE P DNG NHM PNP TNG KT TI LIU

Tnh k tha
o Khc vi C++, C# ch h tr n k tha. Ngha l mt lp con ch c tha k t mt lp cha duy nht. B li n h tr khi nim interface c nhng c im ca a k th nhng loi b c nhng phc tp a k tha C++ o v d trn tnh k tha c th hin viclp HinhVuong l lp con k tha t lp cha l lp HinhHoc c th l k tha t mt lp tru tng . Lp cha

GII THIU

CC VN
CODE P DNG NHM PNP TNG KT TI LIU

Lp con

Tnh k tha(tt)
Trong C# mt lp bt but phi tha k t mt lp no ngoi tr lp Object . C# h tr mt lp c s ton din gi l System.Object. V lp cha HinhHoc l mt lp tru tng(abstract) cha trong n hai phng thc tru tng , C# s yu cu lp con HinhVuong phi override li cc phng thc . Phng thc abstract lp cha Phng thc ci t lp con

GII THIU

CC VN
CODE P DNG NHM PNP TNG KT TI LIU

Phng thc np chng(Overloading)


o C# h tr phng th np chng vi mt vi dng phng thc khc nhau v nhng c tnh sau:s lng tham s, kiu tham s. o N khng chp nhn hai phng thc ch khc nhau v kiu tr v, hay khc nhau v t tnh ca tham s ang c khai bo nh sef hay out. o v d ta thy hm to lp HinhVuong c vit theo kiu np chng Hm to(Constructor) c vit theo 2 kiu

GII THIU

CC VN
CODE P DNG NHM PNP TNG KT TI LIU

Giao din(interface)
o Vic khai bo giao din lm vic cng tng t nh khai bo mt lp tru tng( abstactor) nhng n khng cho php thc thi bt c mt phn no ca giao din. Mt giao din ch c khai bo bn trong n nhng phng thc, thuc tnh, b lp mc v s kin. o Giao din th khng cha Constructor , khng cho php cc phng thc np chng, khng cho php khai bo cc b, hay cc t kha virtual hay static trn cc thnh phn. Mc cc thnh phn trong giao din lun lun l public

GII THIU

CC VN
CODE P DNG NHM PNP TNG KT TI LIU

Giao din IDoHoa c khai bo v ci t cho lp HinhChuNhat

Struct
o Trong C# struct c nh ngha gn ging nh mt lp ch khc t kha v mt vi im nh sau: 1. Struct l mt kiu gi tr khng phi kiu tham chiu 2. Struct khng h tr k tha nhng vn k tha t lp Object 3. Trnh bin dch lun cung cp mt constructor khng tham s mc nh v khng cho php thay th. 4. Vi struct bn c th ch r cch m cc trng t ngoi b nh. Khai bo 1 struct V struct l kiu gi tr nn thao tc new ch n gin l nh v b nh v gi hm to nn c th code trn struct theo hai cch nh sau:

GII THIU

CC VN
CODE P DNG NHM PNP TNG KT TI LIU

Li v x l bit l
o Nu bn hc VB th cng bit cch x l bit l ca n rt hn ch trong cu lnh On Error Goto i vi C# n m ra mt th gii mi cho vic x l li trong chng trnh ca bn o Cch ca C# x l bit l tng i ging vi Java v C++ nhng trong C++ thnh thong phi cnh gic vi nhng bit l bi vic thc thi n trong C++ c th xy ra. Nhng bn hy hon ton yn tm khi s dng trong C# v n khng gy bt c nh hng no bt li no trong thc thi o Sau y l nhng lp bit l ca lp c s:

GII THIU

CC VN
CODE P DNG NHM PNP TNG KT TI LIU

Cc lp bit l c bn

GII THIU

CC VN
CODE P DNG NHM PNP TNG KT TI LIU

Cc lp bit l c bn(tt)
o nhng lp bit l nn c t trong bt k namspace no tng ung nhng lp m chng c th c sinh ra - v l do nhng bit l c lin quan n IO th nm trong namspace System.IO o C 2 lp quan trng trong h thng cc lp c dn xut t System.Exception l : System.SystemException - s dng cho nhng bit l thng xuyn c sinh ra trong thi gian chy ca .NET,hoc l nhng li chung thng c sinh ra bi hu ht nhng ng dng , v d nh l StackOverflowException uc sinh ra bi thi gian chy .NET nu n thm d thy Stack y

GII THIU

CC VN
CODE P DNG NHM PNP TNG KT TI LIU

n bt bit l
cch m n lm nh sau : 1. Dng thc thi bc vo khi try. 2. Nu khng c li xut hin, vic thc thi tin hnh mt cch bnh thng xuyn sut khi try, v khi n cui khi try, dng thc thi s nhy n khi finally ( bc 5), tuy nhin, nu mt li xut hin trong khi try,thc thi s nhy n khi catch ( bc tip theo) 3. trng thi li c x l trong khi catch 4. vo cui ca khi catch , vic thc thi c chuyn mt cch t ng n khi finally 5. khi finally c thc thi C php C# c s dng th hin tt c iu ny c th nh sau:

GII THIU

CC VN
CODE P DNG NHM PNP TNG KT TI LIU

n bt bit l(tt)
Nhng thuctnh ca system.exception Trong v d trn chng ta ch xem xt 1 thuc tnh l message, ca i tng exception. tuy nhin c 1 s nhng thuc tnh trong lp system.exception - helplink: 1 lin kt n 1 tp tin tr gip m cung cp nhiu thng tin hn v bit l - message: chui m t trng thi li - source : tn ca ng dng hoc i tng m gy ra li - Stacktrace: chi tit v phng thc gi stack ( gip truy du vt phng thc m nm ra bit l) - TargetSite: mt i tng phn nh ca .NET m m t phng thc nm ra bit l - InnerException :nu bit l ny c nm t bn trong mt khi catch , n cha ng i tng bit l m gi on m vo trong khi catch.

GII THIU

CC VN
CODE P DNG NHM PNP TNG KT TI LIU

C ch Delegate & Event


Delegate
GII THIU Lp ng gi cc phng thc (method signature) Dng trong event-handling model ca C# c tnh Type safe Object oriented mechanism Delegate l class: C instance C th cha nhng tham chiu n 1 hay nhiu method Mt delegate nh ngha mt signature Return type Sequence of parameter types Tt c cc method c cng signature c th c add vo th hin ca delegate

CC VN
CODE P DNG NHM PNP TNG KT TI LIU

C ch Delegate & Event(tt)


Delegate instance c mt danh sch cc tham chiu method Cho php add (+) cc method C th remove (-) cc method

GII THIU

CC VN
CODE P DNG NHM PNP TNG KT TI LIU

1.) Define delegate


public delegate void MyDelegate1(int x, int y)

Delegate cho dng hm: void Method( int, int ) public delegate string MyDelegate2(float f) Delegate cho dng hm: string Method( float )

C ch Delegate & Event(tt)


2.) Instance delegate
GII THIU public void Method1(int x, int y) { } MyDelegate1 del1 = new MyDelegate1(Method1); public string Method2(float f) { } MyDelegate2 del2 = new MyDelegate2(Method2);

CC VN
CODE P DNG NHM PNP TNG KT TI LIU

C ch Delegate & Event(tt)


3.) Call Delegate
GII THIU Gi del1

CC VN
CODE P DNG NHM PNP TNG KT TI LIU

int x = 5, y = 10; del1(x, y);

del1(10, 20);

int y = 2; del1(100, y);

Gi del2

float f =0.5f; string s; s = del2(f);

string s = del2(100f);

C ch Delegate & Event(tt)


3.) Multi Cast
GII THIU void Print(int x,int y) { Console.WriteLine(x = {0}, y = {1}, x, y); } void Sum(int x, int y) { Console.WriteLine(Tong = {0}, x+y); } MyDelegate1 mulDel = new MyDelegate1(Print); mulDel += new MyDelegate1(Sum); mulDel(5, 10); mulDel -= new MyDelegate1(Print); mulDel(5,10);

CC VN
CODE P DNG NHM PNP TNG KT TI LIU

C ch Delegate & Event(tt)


C ch thng ip gia cc lp hay cc i tng C th thng bo cho lp khc bit c khi mt lp c pht sinh iu g Publisher: lp pht sinh s kin Subscriber: lp nhn hay x l khi s kin xy ra Trong mi trng giao din GUIs (Graphical User Interfaces: GUIs): Button a ra s kin Click, cho php lp khc c th p ng (x l) khi s kin ny xy ra. VD: Button Add trong Form, khi s kin click xy ra th Form thc hin ly d liu t cc TextBox a vo ListBox

GII THIU

CC VN
CODE P DNG NHM PNP TNG KT TI LIU

C ch Delegate & Event(tt)


Mt lp c publish mt tp cc event cho php cc lp khc subscribe Button l lp publish a ra event: click Form l lp subscribe c phn x l ring khi click ca Button kch hot.

GII THIU

CC VN
CODE P DNG NHM PNP TNG KT TI LIU event subscribe publish A C B

C ch Delegate & Event(tt)


S kin trong C# c thc thi nh u thc Lp publishing nh ngha y thc Nhng lp subscribing phi thc thi Khi s kin xut hin th phng thc ca lp subscribing c gi thng qua u thc. Phng thc x l s kin gi l trnh x l s kin (event handler)

GII THIU

CC VN
CODE P DNG NHM PNP TNG KT TI LIU

Trnh x l s kin trong .NET Framework c m t nh sau: Tr v gi tr void Tham s 1: ngun pht sinh s kin, y chnh l i tng publisher Tham s 2: l i tng thuc lp dn xut t EventArgs Phi thc hin trnh x l s kin theo ng mu trn!

C ch Delegate & Event(tt)


Khai bo delegate x l s kin GII THIU

public delegate void HandlerName(object obj, EventArgs arg);


Khai bo event

CC VN
CODE P DNG NHM PNP TNG KT TI LIU

public event HandlerName OnEventName;


Cc lp mun x l khi s kin OnEventName pht sinh th phi thc thi event handler

Tnh a lung

GII THIU

CC VN
CODE P DNG NHM PNP TNG KT TI LIU

nh ngha lung: Lung (thread) l mt chui lin tip nhng s thc thi trong chng trnh. Trong chng trnh C#, vic thc thi bt u bng phng thc main() v tip tc cho n khi kt thc hm main(). Thao tc lung: lung c thao tc bng cch dng lp Thread nm trong namespace System.Threading, mt th hin ca lung i din cho mt lung. Chng ta c th to cc bng cch khi to mt i tng lung. V d: ThreadStart entryPoint = new ThreadStart(ChangeColorDepth); Thread depthChangeThread = new Thread(entryPoint); depthChangeThread.Name = "Depth Change Thread"; depthChangeThread.Start();

Tnh a lung(tt)
u tin lung: u tin ca lung c nh ngha l cc gi tr trong bn lit k ThreadPriority, cc gi tr: Highest, abovenormal, Normal, Belownormal, Lowest. Mi lung c mt u tin c s. S ng b: Mt kha cnh ch yu khc ca s ng b hay l vic truy nhp mt bin ch bi nhiu lung vo cng thi im, nu khng m bo c s ng b th s gy ra cc li ting vi. gii quyt vic ng b, C# cung cp cch thc truy nhp bin bng t kha lock: Lock (x) { doSomething(); } Cc vn v ng b: Deadlock: l mt li c th xut hin khi hai lung cn truy nhp vo cc ti nguyn m b kha ln nhau Race condition: l mt li xut hin khi vi lung c gng truy nhp vo cng mt d liu v khng quan tm n cc lung khc.

GII THIU

CC VN
CODE P DNG NHM PNP TNG KT TI LIU

Tnh a lung (tt)


V d v tnh a lung: static void DisplayNumbers() { Thread thisThread = Thread.CurrentThread; string name = thisThread.Name; Console.WriteLine("Starting thread: " + name); Console.WriteLine(name + ": Current Culture = " + thisThread.CurrentCulture); for (int i=1 ; i<= 8*interval ; i++) { if (i%interval == 0) Console.WriteLine(name + ": count has reached " + i); } }

GII THIU

CC VN
CODE P DNG NHM PNP TNG KT TI LIU

Tnh a lung (tt)


Phng thc cho main() cho threadPlayaround v lp cha ng ca n l: GII THIU

CC VN
CODE P DNG NHM PNP TNG KT TI LIU

Tnh a lung (tt)


Li deadlock: GII THIU

CC VN
Vo cng lc mt lung khc ang chy: CODE P DNG NHM PNP TNG KT TI LIU

Nhng b t truy cp(access modifiers):


o C# cung cp mt s b t truy cp cho bit s tn ti ca mt thnh vin trong mt lp C# c h tr 5 b t nh sau: GII THIU

CC VN
CODE P DNG NHM PNP TNG KT TI LIU

C# V THAO TC TRN XML


I). Khi nim XML: XML l ngn ng xy dng cu trc ti liu vn bn, da theo chun SGML (Standard Generalized Markup Language: siu ngn ng c kh nng sinh ngn ng khc). SGML c pht trin cho vic nh cu trc v ni dung ti liu in t, do t chc ISO (International Organization or Standards) chun ho nm 1986. II). c v ghi trn XML: Gii thiu hai lp XmlReader v XmlWriter :C hai lp XmlReader v XmlWriter u l nhng lp tru tng. Hnh v di y ch ra cc lp c tha k t XmlReader v XmlWriter

GII THIU

CC VN
CODE P DNG NHM PNP TNG KT TI LIU

C# V THAO TC TRN XML(tt)


o S dng lp XmlTextReader: ta xt v d c d liu trong file XML c sn ri hin th ln listview trn form thng qua mt button. Trc ht phi khai bo using System.Xml; sau vit code nt button nh sau:

GII THIU

CC VN
CODE P DNG NHM PNP TNG KT TI LIU o S dng lp XmlTextWriter: vic s dng system.xml cho php chng trnh ca chng ta xut ra mt file XML vi ni dung mong mun. Ta xt v d sau:

C# V THAO TC TRN XML(tt)

GII THIU

CC VN
CODE P DNG NHM PNP TNG KT TI LIU Nh rng khi dng XmlTextWriter ny s ghi file mi ln file c (Trng tn).

C# V THAO TC TRN XML(tt)


S dng XPath trong .NET XPath l mt ngn ng truy vn cho XML. Bn s dng XPath chn mt b con cc cc yu t gi tr vn bn hoc cc gi tr thuc tnh. Khng gian tn System.XPath y l mt bng lit k cc lp trong System.XPath, v mt gii thch ngn v h tr ca mi lp:
Class Name XPathDocument XPathNavigator XPathNodeIterator Description Mt view ca ti liu XML . Ch c. Cung cp kh nng iu hng cho mt XPathDocument. Cung cp kh nng truy xut trc tip cc nt. XPath trang b mt b nt trong Xpath. Mt bin dch phng thc XPath. c dng bi SelectNodes, SelectSingleNodes, Evaluate, v Matches. XPath exception class.

GII THIU

CC VN
CODE P DNG NHM PNP TNG KT TI LIU

XPathExpression

XPathException

C# V THAO TC TRN XML(tt)

GII THIU

CC VN
CODE P DNG NHM PNP TNG KT TI LIU

NHM PNP(Peak Network Programming)

GII THIU CC VN CODE P DNG

NHM PNP
TNG KT TI LIU

Danh sch thnh vin gm: 1. Trn Vn Thao Lp Ctin31b email:thao31b@gmail.com 2. Nguyn Thanh Hi Lp Ctin31b email: 3. Nguyn Vn Hin Lp Ctin31b email: 4. L Hng Quc Lp Ctin31b email: 5. H ng Nht Lp Ctin31b email:

ST: 0979817787 ST: . ST: .

ST: .
ST: .

Tng kt
Thnh qu t c: GII THIU CC VN CODE P DNG NHM PNP V c bn tm hiu c ngn ng lp trnh c#, .NET Framework, lp trnh hng i tng qua nng cao kin thc ca sinh vin. Thm kinh nghim t nghim cu tm ti ngn ng lp trnh mi. Lm nn cho vic tm hiu k thut lp trnh mng

Kh khn Cha V thi gian c hn cng nhng l do khc nn khng trnh c nhng sai st trong slide mong thy v cc t c bn thng cm, gp cho nhm.

TNG KT
TI LIU

Ti liu tham kho


1. Professional C#, 2nd Edition, Xut bn bi Wrox Press Ltd. 2. Cc gii php lp trnh c# tng hp v bin dch nguyn ngc bnh phng-Thi Thanh Phong 3. Cc trang din n trn internet

GII THIU CC VN CODE P DNG NHM PNP TNG KT

TI LIU

You might also like