Xây Dựng Lớp Và Phương Thức Trong C# - Toan Vnaking's Blog_site
description
Transcript of Xây Dựng Lớp Và Phương Thức Trong C# - Toan Vnaking's Blog_site
-
7/5/2015 XydnglpvphngthctrongC#Toanvnaking'sblog/site
http://www.vnaking.com/hoctap/csharp/lopvaphuongthuctrongcsharp 1/13
HOMEAbout meMy works & projectsTh ThutHc tpGp NhtGii trB quyt & Cuc sng
Contact me:
Name: Nguyen-Van Ton
Email: [email protected]
Phone: 016.97779.357
f /toanvnaking
in /toanvnaking
t @vnaking
ng ngi lin h vi mnh nubn c khiu ni, gp hay btc thc mc g :)
Site c lp ngy 27.10.2010Chnh thc k t ngy 7.11.2010 vnaking
Khch thm
Hc tp > C# >
Xy dng lp v phng thc trong C#
Ngi ng bi : duaca
XydnglpvphngthctrongCSharpNhchngtabit,CSharplngnnglptrnhhngitng,chnhvthvictoraccitngtrong1chng trnh vitbngCSharp liukhng th thiuvy lm thnoto ra cci tngmongmunkhicnsdngchngtrongchngtrnhcamnh?nginthi!bnchvic xydnglptrongchngtrnhlcthtoraitngbtckhinocnn.Vylplg?!,trongtinganh,thutngnyctnlclassvvicdchra tingvitnhtidchtrn xemracvthkchvkhlintng(Nht livi nhngbnmibtu tip xcvi lp trnhhngi tng) chnhv thchngtasdngtnguynbn:class.Classcthcxemnhnhngkhunmucnhnghatrongchngtrnhcabncranhngitngcnthitcnggingnhtrnthct,tronglnhvchnggiadng,cranhngidpbnchongitiudngsdng,nhsnxutsphichto, thitkracckhunmucnthitcholoidpssnxut,saudavonguynliuvkhunmuchtossnxutraccsnphmlnhngidpcungcpchothtrngtiudng.
Tronglptrnhhngitngcngvy,bncnphinhnghaClassnhlnhngkhunmucnthitcthsnxutraccitngsdngnchomcchnotrongchngtrnhcamnh.Trongminhhatrn,htnhachnhlnguynliutorasnphmlnhngidp,trongchngtrnhcabn th nguyn liu to rai tng chnhld liu.D liuy c th l cc kiud liu cbn(Primitivedatatype)mCSharpcungcphoccngcthlnhngkiudliucbitdobntoranhStruct,EnumhaynhngClasskhccndngchoviclutrthngtintrongClassmunxydng.
Lintng
Hytngtng!.Bnsvit1chngtrnhmtchotrchiuaxethamnammtc,nhvybncnphitora1ClassctnlXeHoingvinngichi,chngtrnhcabnstoranchicxehikhcnhauphcvngichisdng.
5parameter
Tm kim trang web ny
-
7/5/2015 XydnglpvphngthctrongC#Toanvnaking'sblog/site
http://www.vnaking.com/hoctap/csharp/lopvaphuongthuctrongcsharp 2/13
Lin Kt Ngoi:http://chungta.comhttp://nguyentatthinh.comtapchithoidai.orgVin khoa hc nghin cu nhn tiviet-studies.info/kinhtekhoahoctre.com.vn/http://vinacode.net
Hocginhbnsxydng1ngdngphcvchonhucum(Nivuivychobunng),ccnhnvttrongchngtrnhcabnlnhngchinbinhchophpngichiiukhinkhithamgiatrchiChcchnbncngphitora1Class:ChienBinhvvothiimbtuchi,ngidngs chnchinbinhidinchomnh,chng trnhsthngquacimcachinbinhmngichilachn(didnghnh vtrongchngtrnhcabncungcp) toraitng tngng.Dnhinnhngchinbinhnytythuctheothchcatngngimscnhngcimkhcnhau,vicnhndngvthhinccchinbinhkhcnhautrongchngtrnhcabnchyudavodliuchnhlthngtinmngichilachnvhnhnhmbncungcptrongchngtrnh
street fighter games
ny, chcbnhiu v khi nimClasstrong lp trnhhngi tng. Vy khi xydngClasstrongchngtrnh,chngtaphibtutu?.Cutrlilkhngkh,cnggingnhloingiquahngngnnmtinharahngngnphtminh,hunhttcnhngphtminhnyulphcvchocucsngvphttrincaconngi,nichungldavonhucumc.Tronglptrnhcngvy,trckhixydngchngtrnh,bnthngphithitkdatrnnhngtngno.GidtrongGamevuaxe,ngichicphpchnxecmug,ngviloixethtcdichuynlbaonhiu,xephixdngnhinliulxng,duhaygasHocginhvigamemtrn,chinbinhcangichicthscchiucao,cnnng,hnhdngnhthno,vgisccchinbinhtrongchngtrnhcabnuckhnngm,,phithnkhimttthngvimithtrngcachinbinhmcm,cnhhngrasaonith,phithncthcaohaythpny,thcstimundntbnnmtsvncbncnctrongclasscalptrnhhngitng.chnhlproperties(thuctnh)vmethod(phngthc),michicxecthcmusnkhcnhau,sdngnguynliukhcnhau:ychnhlccpropertiescnctrongclassxeHoitrn.Michinbinhcchiucao,cnnng,hnhdngkhcnhau:ychnhlnhngpropertiescnxydngtrongclasschienBinh.Miloixecthdichuyntckhcnhautrnmiloiahnh,miloixecuthkhcnhaukhivocuatinhngkhcquanhcgcmkhcnhautc,khnngvocuatheoahnhchnhlmethodchoclassxeHoi.Michinbinhcc,cmkhcnhauhaykhnngcamichinbinhkhiphithnlcaohaythp,nhvycckhnng,mvphithncxemnhmethodcaclasschienBinh.Hynh!.Khi xydngclasstrongCSharp, bnphinhngha ccpropertiescng vimethodcnthitcthsdngchoitngcamnhtrongchngtrnh.
Cphptoclass
class{
(tham_s,)
}
Theonhcphptrn,chngtascnglmmtsvdtoclasstheonhngyucudiyhiurhnvcphp
-
7/5/2015 XydnglpvphngthctrongC#Toanvnaking'sblog/site
http://www.vnaking.com/hoctap/csharp/lopvaphuongthuctrongcsharp 3/13
VD1:nhngha1classdngchathngtinvhnhtrntrongchngtrnhviccthngtinlutrmtchocccimsaucahnhtrn:bnknh,musc,hnhrnghayc.
ClasshinhTron{float_banKinh//Bnknhcahnhtrnint_mau//Mucahnhtrnbool_hinhRong//Nurng:true,ngclilfalse}
VD2:nhngha1classdngchomcchchathngtinvhcsinhcnqunltrongchngtrnhviccthngtinlutrmtchocccimsau:mshcsinh,htn,giitnh,sinthoi,nmsinh.
ClasshocSinh{int_maHS//mscahcsinhstring_hoTen//htncahcsinhbool_gioiTinh//Nunam:true,ngclilfalselong_soDT//Sinthoicnhnint_namSinh//Nmsinhcahcsinh}
VD3:nhngha1classdngchomcchchathngtincaccphnsphcvchovicgiiccbitontrongchngtrnhviccthngtinlutr:ts,mus.
ClassphanSo{int_tuSo//mscahcsinhint_phanSo//htncahcsinh}
Quaccvdtrn,chngtamichnthnltoraClasslutrthngtindavoccbinthnhphnkhaibo.Nutoraitngcacclpnythchngnthunchdnglutrthngtin,iunycnggingnh1ngicsinhratrnthgiannyngoiviccthchacthcntrongbngthchngbitlmgc(cvnhhivdngnh!).MtthnhtgnnhkhngththiutrongmiClasscnhnghachnhlmethod,methodcxemnhlkhnngtrangbchoobjectcaClassncthxlnhngthngtinclinquannmnh.
Method
Phngthc,hm(method)ltphpcclnhdngxlthngtincho1mcchno,thngthngphngthcctoravcttncthgisdngthngquaitngcaClass.Cphpnhngha1phngthccmtnhsau:
([list_of_parameter]){
}
Trong::chnhlphmvi(cngiltmvc)truyxutcaphngthctrongchngtrnh.:lkiudliumsaukhithihnh,hmstrvgitrthuckiukhaibochonigi:tncaphngthc,hm.Tncaphngthckhitphituntheoquycvttnchodanhnhtrongchngtrnh.[list_of_parameter]:chnhldanhschccthamstngtrngchodliustruynvotronghmxlkhigin.
Lu:Tncahmkhitphituntheoccyucusau:
-
7/5/2015 XydnglpvphngthctrongC#Toanvnaking'sblog/site
http://www.vnaking.com/hoctap/csharp/lopvaphuongthuctrongcsharp 4/13
KhngctrngvitkhathucngnngCSharpKhngcckhongtrngKhngcbtubiksChcthbtubikt,dugchdihocdu@
Bngmtmtstnhhungttnmethod
Tnmethod Dingiiivitntsai
@them()
bool() SaivtrngtnvitkhatrongCSharp
Dichuyen(intx,inty) Saivtnhmckhongtrng
cong_Hai_So(floata,floatb)
_tinhHoanhDo()
5lan(intx) Saivtnhmnybtubiks
Lthuytlchunmcvmangtnhtngqut,chnhvthcthbnsthycphphircri.nglo,chngtascnglmmtsvdvvicnhnghaphngthc,bnsthynrtngin.Vd1:Hynhnghatrong ClasshinhTron1phngthcchophptnhvtrvchuvicahnhtrn
publicfloatchuVi(){return2*3.14*_banKinh}
Vd2:Hynhnghatrong ClasshocSinh1phngthcchophpxutthngtinycaitnghcsinh
publicvoidxuatThongTin(){console.WriteLine(Mhcsinh:{0},_maHS)console.WriteLine(Hvtn:{0},_hoTen)console.WriteLine(Giitnh:{0},(_gioiTinh==true?Nam:N)console.WriteLine(Sinthoi:{0},_soDT)console.WriteLine(Nmsinh:{0},_namSinh)}
Vd3:Hynhnghatrong ClassphanSo1phngthcchophpxutrathngtincaitngphnshinhnh
publicvoidinPhanSo(){console.WriteLine({0}/{1},_tuSo,_mauSo)}
Tovsdngitng
Nhgiithiutrongphntrc,itng(Object)chnhl1thhincaClasschnhvthtrongCSharp,munto1itngca1Classnhnghatrongchngtrnh,bnchvicsdngtkhanewtheocphpnhsau:
=new()
Vd:tora1ObjectcaClasshnhtrnnhngha,bnchvicdnglnhnhsau
hinhTronh1=newhinhTron()
-
7/5/2015 XydnglpvphngthctrongC#Toanvnaking'sblog/site
http://www.vnaking.com/hoctap/csharp/lopvaphuongthuctrongcsharp 5/13
to1ObjectcaClasshocSinhtacthdnglnhtheocaphpnhthny
hocSinhhs=newhocSinh()
KhicObjectcaClass,giMethodnhnghatrongClassbnchvicgithngquaitngcaClasslMethodsthcthinhngculnhmbnspt.Vd1:tnhchuvicaObjecth1vxutramnhnhtissdnglnhnhsau
floatketQua=h1.chuVi()console.WriteLine(Chuvitnhc={0},ketQua)
Ghich:trongvdtrn,chcbnsrtthcmcvychuvitnhcsinramnhnhlbaonhiu,trongkhitrongmethodchuVichngtadngcngthc2*3.14*_banKinhvtrong_banKinhchabitcgitrno.Bncyntm,chngtacncnphicthm1skinthcnathvicmtcodestngminhhn,tmthibncchpnhnnhvy,bin_banKinhbngbaonhiuthsctnhngvigitrmnangctheocngthcmchngtasdng
Vd2:inrathngtincaObjecthstissdnglnhnhsau
hs.xuatThongTin()
Nhvy,chngtathyrngtronglptrnhhngitng,numungithcthi1hm,1phngthcnothbtbucbnphic1thhincaClassvlcnychngtacthgihmthngquaObjectcaClass.
Tuynhinc1trnghpcbitchophpbncthgihmmkhngcnthngquaitng,trnghpnychngtascpnstaticmethodphasau.
Staticmethods
Nhvacpntrn,mcnhintrongCSharpthmtphngthcchcthgithngquaObjectthucClassviunystrnnkhkhnkhilptrnhvinmunxydngtrongchngtrnh1phngthcdngchungchomitnhhung
Vd:bncnvit1phngthcnpthngtint1tptintrna,nunhtheocchtrnthngvi ttc ccClasstrong chngtrnh cnhu cunpthng tintFilechoObject can,bnphi xydngttcccphngthcnpFilecnthitviunycvnhhilngph,gingnhlmkhchongivitcodevymcdbncthsaochpCodecaphngthccnthitnnhiuninhngiunycngvnltrngilncholptrnhvinnhtlkhicnphiiuchnhligiithutchonhngoncodenygiiquytsbtcpny,CSharpcungcpchobn1cchnhnghaMethodkhicn,cthgis dng nhngMethod 1 cch thun tin m khng cnphi thng qua Object chnh l Staticmethod.Vicnhnghastaticmethodtrongchng trnhchng cnhiu khcbit sovi vicnhnghamethodthngthng,bnchvicthmvotrcphnkhaibomethodtkhastaticvphisdnglpublicl(Chngtaslmquenvinghacaaccess_modifierphsau ).Cphp
static
([list_of_parameter])
{
-
7/5/2015 XydnglpvphngthctrongC#Toanvnaking'sblog/site
http://www.vnaking.com/hoctap/csharp/lopvaphuongthuctrongcsharp 6/13
}
Vd:Chng ta cnvit 1hm tnhbnhphng ca1 svhmnyc thgibt cu trongchngtrnhmchngcnphithngquaObject.
staticlongbinhPhuong(longso){returnso*so}
Vyvistaticmethod, chngtasgisdngrasao ?CSharpchophpbngitrc tipthngquatncaClasscchan
.(parameter,)
Vd:Chngtasvit1chngtrnhchophptnhdintchvchuvicacchnhtrn,hnhvung.TrongtasxydngphngthctnhbinhPhuongtnhbnhphngchoccstruynvokhigihmny.Chngtrnhcvitnhsau:
usingSystemusingSystem.Collections.GenericusingSystem.LinqusingSystem.Text
namespacetinhToanCacHinh{classtinhToan{publicstaticfloatbinhPhuong(floata){returna*a}}classhinhTron{float_banKinh//////Hmkhito1thamscalphnhtrn//////publichinhTron(floatgt){_banKinh=gt}publicfloatdienTich(){returntinhToan.binhPhuong(_banKinh)}}classhinhVuong{long_canh//////Hmkhito1thamscalphnhvuong//////publichinhVuong(longgt){_canh=gt}publicfloatdienTich(){returntinhToan.binhPhuong(_canh)}}classProgram{staticvoidMain(string[]args){hinhTronh1=newhinhTron(5)hinhVuongh2=newhinhVuong(9)Console.WriteLine("Dintchhnhtrn{0}",h1.dienTich())Console.WriteLine("Dintchhnhvung{0}",h2.dienTich())Console.ReadLine()}}}
-
7/5/2015 XydnglpvphngthctrongC#Toanvnaking'sblog/site
http://www.vnaking.com/hoctap/csharp/lopvaphuongthuctrongcsharp 7/13
Ghich:
Tito1projectctntinhToanCacHinhtrongvisualStudio,vmcnhinthVStngcungcpchoti1nameSpacetrngtnvitncaprojectvtngtora1classchnhchoprojectnyvitnlprogram.csBnthytrongtptinctntrngtnviClasschnhcachngtrnhlprogram.cs,titora3ClasskhcctnltinhToan,hinhVuong,hinhTron.ThngthngthtrongCSharpcngvi1Classctoratrongchngtrnhsclutrtrnatrong1filetrngtnvitnClasscnto.TuynhinbnvncthchanhiuClasstrong1tptin(nhcchlmtrn)vnhvythngitathnggibngthutngsubClass,iunylhpl,tuynhinsaunynubntrthnh lptrnhvin, bnnnhn chvicxydngsubClassgingnhv dca titrongchngtrnh camnh, sdtrongvd tilmnh thgipbnnhncode rcri hnmthi.TrongccmethoddngtnhdintchcaClasshinhTronvClasshinhVuongtitruyxutnStaticmethodc tnbinhPhuongthngquatn caClassc chan theonh cphpmt:tinhToan.binhPhuong(_canh)
Staticvarialbe
ngviphngthctnh(staticmethod),CSharpchophpbncthnhnghaccbinthnhvinthucdngstaticsdngvthngthbinstaticcdngchomcchchiasthngtincaClassivi tt c ccObject thuc vClasstngng. V d timt thiimno bn cn theo di trongchngtrnhcbaonhiuitngcaClassXcto ra,trongtnhhungnyth vicsdng1staticvariablelhplnht.
Accessmodifiers
Thut ng ny thng c dch ra trong 1 s schdy lp trnh bng ting vit l b t, vy Accessmodifierscnghanhthno?cchsdngrasao?.Tronglptrnhhngitng,AccessmodifierslthutngdngmchmtstkhacbitdngkhaibochoClass,MethodhayVariablenhmchraphmvisdngcngnhmcnhhngcantrongchngtrnhcabn,titmgiltmvccaitngsdngnkhaibo(tmvc:tmnhhng,phmvihaykhuvcmitngckhaibocthtcngn).NhngAccessmodifiersmbncthsdngchovickhaibotrongchngtrnhcamnhbaogm:
public:dngkhaibonhngitngmangtnhcngcng,cthtruyxuthaygisdngtbnngoiClass,AssemblyhayNamespaceprivate:ltkhachrarngitngmbnkhaibolringt,chcthsdngbntrongniticanimnkhaibomthi.protected:tkhanythngcngtngtnhprivate,tuyninphmvinhhngcanlnhnprivatevclinquannthaktronglptrnhhngitng(tislgiivtkhanykhntrongbivitnivthak,bnhychnh)internal:yltkhachophpkhaibochophptruyxuttrongphmvicclpthuccngAssemblycachngtrnh.
Cltiy,bncmthy cclgiitrndngnhrtmh!,tixingipbnlintngthny:trongnhbn,phngkhchlnimmithnhvintronggianhucthsdngnnhnhau=>khixydng,phngkhchc khaibo l public.Trongphng cabn,nhngvtnhbngh,chnmn,chdnhchobnsdngmthi,ccthnhvin khckhngcphp=>bngh,chnmntrongphngcabnckhaibolprivate(cibptrongtibncnglprivate,mingixungquanhukhngcquynlcbpcabnlytiny!!!).Protectedththny,bambnmua1chicxeSHlmphngtinili,khicnthbnhayanhchemtronggianhucthsdngchicxe,nhnganhbnhngxmcabnthkhngcphpsdngchicSH,cthnichicSHcagianhbnckhaibolprotected.Internalthlikhctrong1 cnphng,mivtnhbngh,ngi,t,ucthnhnnhschtchicbngntreotrntrnnh,trongtnhhungnythmivt vngi trongcnphngcxemnhl ccClasskhcnhauvAssembly chnhl cnphng th bngn gn trn trnnh c xem nh l c khai bo Access modifier vi t khainternalri.
BngmttmnhhngcaAccessModifiers
Cthtruyxuttrongphmvichngtrnh
Cthtruyxuttrongphmvicalpchakhaibo
C th truy xut tcc lp tha k calpchakhaibo
public
-
7/5/2015 XydnglpvphngthctrongC#Toanvnaking'sblog/site
http://www.vnaking.com/hoctap/csharp/lopvaphuongthuctrongcsharp 8/13
private protected internal
VntruynthamschohmtrongCSharp
Nhcphpkhaibodnhchomethodcpmctrc,tathymethodcthcthamstruynvohockhngc.Vychnhxcthamslg?,tisaophicthams?Nukhngcthamscngcthkhixydngmethodtikhngdngthamschottcccmethodckhng?.Tixindingiitrlicccuhitrnthngqua1snhsau
Theonhngha,thamsltphpccdliucnccungcpchohmxltithiimmhmcgi.Vdnhvicsdngxegnmydichuyn,hmnaytichctinvobnh1ltxng,nhthtrongngyhmnaytichcthdngxegnmydichuyntrongphmvitial50km(gis1ltxngthxecaticthdichuyntrongphmvi50Km),hmquaticthc3 lt,cnghalngyhmquati cthdngxegnmydichuynctia150Kmhocgilngymai,ticnphidichuyntrongphmvi250Kmthtrckhidichuyntiphivobnhxng5lt.Trongtnhhungny,timunbnlintngnchicxecamnhnhlphngthctronglptrnh,lngxngvobnhchnhlthamscungcpchophngthcvngvidliucungcpkhcnhau(lngxngvobnh)thkhnnghotngcahmaraktqucngskhcnhau.Nhvyvicchaykhngcthamscntythucvomctinhotngvnhucusdngca method tng ng, nh li 3 method m ti minh ha trong phn trc : chuVi()xuatThongTin()inPhanSo()tiukhngsdngthamsvnhnghmnykhihotngdatrndliuniticaitng.TrongkhihmbinhPhuong(longso)c1thamsvtytheostruynvomithiimmhmnystnhvtrvgitrchothchhp.Rrngvicchaykhngcthamscntythucvomctiuhotngcahm,tuynhinvicsdngthamsslmchokhnngxlthngtincahmclinhhothn(Nhngbncngkhngnnqulmdngthamschohmvikhistrthnhmnhtlmkhchnhmnh)
TrongCSharp,thamstruynchohmtheocchmcnhincgiltruynthamtr(Thamstruynvonhlnhnggitrcungcpchohm).Hykhost1vdsau
privatefloattinhToan(floata,floatb){floatc=0a++bc=abreturnc}
Vthuttonthhmnychngcnghagcbit,tichnthundngnmtchonghathamtrcaccthamsavbmthi.Nhbnthy,khihmnycgi,nsthchinlnltcccngvicsau
+khaibovkhignbinc+tnggitrcathamsa+gimgitrcab+tnhhiusgiaavbvtrvktqutnhcchonigihm
Saukhi tmhiuny,bnvnchngthy vicmtchonghatruyntham trlnmu.ngth,michcnidungcahmvnchathlmrcnghacathamtrsdng,bygitithm1oncodemtchovicgisdnghmnytbntrong1hmkhcnhsau
floats1=7floats2=3floats3=tinhToan(s1,s2)console.WriteLine(Sthnht:{0},s1)console.WriteLine(Sthhai:{0},s2)console.WriteLine(Ktqu={0},s3)
-
7/5/2015 XydnglpvphngthctrongC#Toanvnaking'sblog/site
http://www.vnaking.com/hoctap/csharp/lopvaphuongthuctrongcsharp 9/13
Theobn,saukhithihnhktqusinratrnmnhnhthno?.Ktqunhsau
Sthnht:7Sthhai:3Ktqu=6
Clbnscmthyhilphikhng?rrngtivtrcathamsthnhttruynvo,bntronghmstnggitrcanln1vgimgitrcathamsth2xung1nhngsaoinravnl7v3nh?.Cutrlinmy,theonhmcnh,truynthamsnhvdminhhanythscxemnhcchtruyn thamtr, vic tnhton tronghmkhng lmnhhng tigi trcabin tinigihmTrongnhngtnhhungnhtnhno,lptrnhvinmongmunvictnhtonbntronghmcnphilmthayigitrvnhhngnbinsdnglmthamschohmtithiimmhmcgi.pngiuny,CSharpcungcpcchtruyndngthamchiu(reference)sdngchothamscahmthngquacctkharefvout.Vnguyntcth2tkhanydngkhaibochoccthamsthuchmnhmmchnhngthamsnyctruyndidngthamchiu,trongtnhhungnythayvtruyngitrvochohm,achcanhchabingitrctruynvochngtrnhlydliutnhtngngratnhtonngthithayigitr(nuc)cachnhnh,chnhvthsaukhithihnhphngthc,gitrnhbanurtcthbbinidocclnhtronghmtcngvo.
Cchsdngtkharef
privatefloattinhToan(reffloata,reffloatb){floatc=0a++bc=abreturnc}
Vlcny,trong1hmkhcnubngisdnghmtnhtonthsgihmtheocchnhsau
floats1=7floats2=3floats3=tinhToan(refs1,refs2)console.WriteLine(Sthnht:{0},s1)console.WriteLine(Sthhai:{0},s2)console.WriteLine(Ktqu={0},s3)
Bygi,saukhithihnhktqusinratrnmnhnhnhsau
Sthnht:8Sthhai:2Ktqu=6
Trongtnhhungny,bnthytinigihmtinhToan,tkharefcngphitruynvocngvibindngchothamstivtrtngng.
Vicsdngtkhaoutchomcchtruynthamsivithamscahmcnggingnhsdngtkhareftrn,khcbitduynhtlthamchiutruynbngtkharefthbnphikhigngitrtrckhitruynvo(y lquycmcnhin caCSharp tt ccc bintrong chng trnhu phikhi totrckhisdng)cnvitkhaoutthngcli,bintruynvotheohnhthcnyphil1binnguynthysaukhikhaibo(tclkhaibonhngkhngkhitogitrchobin)
Cchsdngtkhaout
privatefloatbienDoi(outfloatx,outfloaty){floatz=0x=5y=(x+2)z=(x+y)returnz}
-
7/5/2015 XydnglpvphngthctrongC#Toanvnaking'sblog/site
http://www.vnaking.com/hoctap/csharp/lopvaphuongthuctrongcsharp 10/13
Vlcny,trong1hmkhcnubngisdnghmtnhtonthsgihmtheocchnhsau
floats1floats2floats3=bienDoi(outs1,outs2)console.WriteLine(Sthnht:{0},s1)console.WriteLine(Sthhai:{0},s2)console.WriteLine(Ktqu={0},s3)
Bygi,saukhithihnhktqusinraktqunhsau
Sthnht:5Sthhai:7Ktqu=12
Kthutoverloading
ikhitrongqutrnhxydngngdng,bncnphixydnghmchomtmcchnonhngliphixlchoqunhiutnhhungkhcnhauvdnhthny:tacnxydng1hmchophpcnghaisvinhau,tuynhintrongcctnhhungsdngkhcnhauthkiudliucathamstruynvocngcthskhcnhauvnhthbnphixydngrtnhiuhmvinhiutngichocng1mcchlcng2siunyi khili gyranhngphintoi khngng c chongi lptrnh (Phi nhqunhiutnhmchcho1vnkhisdng).K thutOverloadingchnh l cch chophplp trnh vin khcphcvn trn,bn cthnhnghanhiuhmvicng1tngivkhisdng,bnchvicgitncahmgingnhthngthngvtruynthamschohm,lcnytrnhbindchstxcnhhmcnthitcholigihmtngng.iunyrtthuntinvmtnghasdnghmtrongchngtrnhcachngta.minhhachovnny,chngtacngxydng1hmdngchomcchtnhbnhphngca1s,hmcachngtacthxlchottcccsthucnhngkiusau:int,long,float,double(BncththnghimchottccckiudliuscaCSharp,tichchn4kiutiubiuchodidng)
publicintbinhPhuong(intso){returnso*so}publiclongbinhPhuong(longso){returnso*so}publicfloatbinhPhuong(floatso){returnso*so}publicdoublebinhPhuong(doubleso){returnso*so}
vtrong1hmkhcthuclphinhnh,tigisdnghmbnhphngcho2kiudliulongvfloatnhsau
longa=5floatb=9longkq1=binhPhuong(a)floatkq2=binhPhuong(b)console.WriteLine({0}bnhphng={1},a,kq1)console.WriteLine({0}bnhphng={1},b,kq2)
MtslukhisdngkthutOverloading
Docimchophpdngtrngtnhmtrongcngphmvitrongchngtrnh,chnhvthbtbuccchmcabnphicskhcbittrnhbindchcthnhndngchnhxcvthcthingviyucutithiimmhmcgi.Skhcbitphithhin1trong2tnhhungsau:
Khcvkiudliucathams(GingnhhmbinhPhuongvaminhhatrn)
-
7/5/2015 XydnglpvphngthctrongC#Toanvnaking'sblog/site
http://www.vnaking.com/hoctap/csharp/lopvaphuongthuctrongcsharp 11/13
Khcvslngthamssdngtruynvochohm
Constructor
Constructordchtheongnghatingvitcncgilhmkhito,ylhmcbitcaClassstngthcthimlnhchabntrongnvothiimmitngcaClassctora,thngthnglptrnhvin sdngConstructorkhito ccgitrcnthit iviccbinthnhvinthucClasstngng.Ngoicimny,constructorcncmtscimkhcnhsau:
CtntrngvitnClassmnthucvKhngckiutrvdnhchohmngthicngkhngcsdngtkhavoidtrongkhaiboLunlunckhaiboviaccessmodifierlpublicKhngthgiConstructorthcthigingnhcchthngthng
Defaultconstructor
CncgilhmkhitomcnhincaClass,nubntoraClassmkhngcungcpbtc1hmkhitonothtrnhbindchstngtorahmnyvkhigngitr0chottcccbinthnhvinckiudliusthucClasstngng
Staticconstructor
HmkhitoStaticthngcdngkhigngitrchoccbinthnhvinthucloiStaticcaClass.Staticconstructorcngl1dnghmcbitcaClass,doncmtscimsau:
KhngchophpsdngbtkthamsnotruynchohmKhngcsdngAccessmodifierkhaibobivStaticconstructorcgithcthitrctipbiCRL(CommonLanguageRuntime)chkhngphibiitngcaClass Cc lnhbn trongStatic constructorkhngcphptruy xutnbtcbinthnhvinkhngphilstaticcaClass
Cphp
TrongqutrnhxydngClass,CSharpchophpbncngcthsdngkthutOverloadingiviConstructor.CnghalbncngcthtoranhiuconstructorchoClass,tuynhinbnlunphitunththeonhngnguyntcvOverloadingcptrn
Nhngvnkhc
Destructor
Cnggingnhconstructor,destructorcngl1hmcbitcaClass,ntngcgivothiimmitngcaClassbhyb.VnghathdestructorthngcdngthcthicclnhmangtnhchtdndpkhiitngcaClasskhngcncdngnna.Mtscimchnhcadestructornhsau:
Luncktutinl~kthpvitntrngvitncaClassKhngthsdngkthutOverloadingchodestructorKhngthgithihnh(NtngcgikhiitncaClasskhngcncdngntrongchngtrnh)KhngsdngcctkhaloiAccessmodifierkhaiboKhngcphpsdngthamschodestructor
-
7/5/2015 XydnglpvphngthctrongC#Toanvnaking'sblog/site
http://www.vnaking.com/hoctap/csharp/lopvaphuongthuctrongcsharp 12/13
Garbagecollector
GarbagecollectorchnhlcchdndpccungcptrongCSharpvimcchthuhivngnhivinhngitngkhngcncsdngntrongchngtrnh.Khi1itngtrongchngtrnhtrong1thigiandikhngcgisdnghaychngtrnhthotrakhiphmvimtrckhaibovkhi toitng thGarbagecollectors thcthicc lnhcnthitgiiphngvngnh,ginhkhnggiantrngchonhngitngkhcctoratrongchngtrnh.dhnhdung,bnc thtngtngGarbage collectorcnggingnh cngtyvsinh cathnhphvy,vocuingy,nhnvinvxerccacngtystngthugomrctrongthnhphtrlikhnggiancngnhmitrngtrongschchongidnbtu1ngymisaukhithcgic.
Tkhathis
TkhanydngmchchoitnghinhnhcaClass,vicsdngtkhanykhitruyxutccbinthnhvincaClassthngthngslmchomlnhcachngtrnhtngminhhnngthigipcholptrnhvincthtrnhcvicngvtnkhivtnhtncathamstruynvochohmvtnbinthnhvinbtrngnhauTuynhinc1immbncnphinh,lkhngcphpsdngtkhathistruyxutnccbinthnhvinthucloistaticcaClass.VdsauminhhavicsdngtkhathistruyxutnccbinthnhvincaClass
-
7/5/2015 XydnglpvphngthctrongC#Toanvnaking'sblog/site
http://www.vnaking.com/hoctap/csharp/lopvaphuongthuctrongcsharp 13/13
ac
www.bodua.com
Tiliuthamkho:GiotrnhAptech
(c) vnaking 2012 - facebook
ng nhp | Bo co lm dng | c cung cp bi Google Sites
Nhn xt