Xây Dựng Lớp Và Phương Thức Trong C# - Toan Vnaking's Blog_site

13
5 parameter Tìm kiê m trang web này

description

Tài liệu sưu tầm

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