You are on page 1of 45

ETM : MERHABA DNYA

Blm : C# le Yazlm Bir Uygulamann Temel Yaps Konu : Bir C# Programnn Yaps

Page 1 of 45

Bu blm alan basit bir rnei analiz ederek bir C# programnn temel yapsn retmeyi hedeflemektedir. Bu blmn ieriinde ayrca baz temel giri/k operasyonlarn gerekletirmek iin Console snfnn nasl kullanlaca da yer almaktadr.

Bir C# Programnn Yaps


Yeni bir programlama dili renirken bir ok insann yazd ilk program kanlmaz Merhaba Dnya dr. Aadaki rnek kod bir C# programnn gerekli btn elemanlarn ierir: //C# dosyalar, *.cs dosya uzants ile sona ererler. using System; class HelloClass { public static void Main(string[] args) { Console.WriteLine("Merhaba Dnya"); Console.ReadLine(); } }

Bu kod blou csc.exe ile komut satrndan (csc.exenin kullanm ilereleyen blmlerde anlatlmaktadr) ya da Visual Studio ile derlendiinde kt aadaki gibi olur:

lk uygulama

2 / 45

ETM : MERHABA DNYA

Blm : C# le Yazlm Bir Uygulamann Temel Yaps Konu : Snf Nedir?

3 / 45

Snf (Class)
C# btn programlama mantnn bir tip tanmlamas ierisinde olacan syler. Gelitirilen bir uygulama bir ya da daha fazla snf(class), yap(struct) ve dier tiplerden oluan bir koleksiyon olur. (.NET dnyasnda tip, u kmenin yelerinden birini anmak iin kullanlan bir terimdir {Snf (class), yap (structure), numaralandrc (enumaration), arayz (interface), temsilci (delegate)}). Bu tiplerin arasnda en temel olan snftr. Sonraki blmlerde ayrntl olarak grlecek olan snf; veri, bu verilerle ilikide bulunabilen metotlar ve dier yeleri ile belli bir programlama grevini yerine getirmekle sorumludur. Merhaba Dnya uygulamasndaki kodlara baklacak olursa HelloClass adnda tek bir snf olduu grlr. Bu snf programa class anahtar kelimesi ile tantlrken snf adnn ardndan ssl parantez - { - gelir. Ssl parantez arasndaki her ey ilgili snfn parasdr. Her bir C# snf birer .cs dosyasna yazlabildii gibi, bir .cs dosyasnda birden fazla snf tanmlamas yaplabilir. Ayrca C# 2.0 ncesinde bir snf birden fazla fiziki dosyaya paralayacak ekilde tasarlamak mmkn deilken, C# 2.0 ve sonrasnda class anahtar kelimesinin nne partial anahtar kelimesini koyarak bu mmkn olmaktadr. Ayn zamanda tm snf tanmlamalar iin .cs uzantl dosya ad ile snf ad ayn olmak zorunda deildir; ancak genellikle deitirilmez.

4 / 45

ETM : MERHABA DNYA

Blm : Visual Studio le Tann

Konu : Visual Studio Nedir?

5 / 45

Microsoft Visual Studio


Microsoft Visual Studio; Microsoft teknolojileri zerinde yazlm gelitirmek iin en fazla kullanlan yazlm gelitirme aracdr. erdii aralarla yazlm gelitiricilere ok fazla kolaylk salayan Microsoft Visual Studio, yazlm gelitirme deneyiminin ok st seviyede yaanmasna olanak tanmaktadr. Yazlmclarn eli aya olan Microsoft Visual Studioya biraz daha yakndan gz atalm;

6 / 45

ETM : MERHABA DNYA

Blm : Visual Studio le Tann

Konu : Visual Studio le Yeni Bir Proje Oluturmak

7 / 45

Microsoft Visual Studio zerinde Yeni Proje Amak


Yeni proje amak iin File mensnden New seeneinin zerine gelinir ve alan menden Project seenei seilir.

New prokect mens karnza aadaki ekran karacaktr. Yeni proje amak istedinildii Visual Studioya belirtildikten sonra bir de yeni alacak olan projenin tipi belirtilmelidir. Sradaki admda projenin tipi belirtilmektedir.

Bu admda Visual Studio zerinde ykl olan tm proje ablonlar listelenmektedir. Proje ablonlar seilen proje tipine gre gerekli olan minimum bileenleri projeye dahil edip karnza karmaktadr. rnein
8 / 45

bir masast uygulamas gelitirmek istiyorsanz Windows Forms Application seeneini semelisiniz. Windows Forms Application size Word, Excel vs. gibi bir uygulama gelitirmek iin gerekli alt yapy salar ve varsaylan olarak ana ekrannz gelitirmenize olanak tanyacak bir tane form getirir. Console Application seenei seilirse DOS ekran adn verdiimiz komut satrnda alan bir uygulama gelitirmeniz iin gerekli bileenler projeye dahil edilmi olacaktr. Console Application seeneinde karnza form karlmaycaktr nk komut satr uygulamalarnda forma ihtiya yoktur sadece alacak olan kodlar barndracak olan dosyalar hazrlanm olarak karnza gekecektir. Bu blmde kodlarn daha anlalabilmesi iin tercih edilen rneklerde Console Application kullanlmaktadr. Proje ablonlarndan Console Application seilerek OK tuuna baslr ve yeni proje alr. Yeni proje ekrannda aadaki grnm ile karlalacaktr.

Yeni proje aldktan sonra karnza varsaylan olarak yukardaki grnm geliyor olmaldr. Bu grnm kendinize gre zelletirebilirsiniz. Font ayarlar ile oynayp fontlarn renginin, boyutunun vs. kendi zevkinize gre grnmesini salayabilirsiniz ya da burada bulunan ekranlar kapatp yenilerini grnr hale getirebilirsiniz.

9 / 45

ETM : MERHABA DNYA

Blm : Visual Studio le Tann

Konu : Visual Studioda Solution Explorer Penceresi

10 / 45

Solution Explorer
Soltion gelitirilmekte olan bir uygulamann tm bileenlerinin bulunduu yapdr. Bir Solution ierisinde bir proje olabilecei gibi birden fazla proje de yer alabilir. Solution Explorer bir uygulamann ierisinde bulunan tm bileenlerin listelenmi olduu blmdr. Bu blm aracl ile uygulama ierisinde bulunan eleri grp ift tklayarak zerinde alabilir, projeye yeni e ekleyebilir ya da var olan eyi silebilirsiniz. Solution Explorerda en stte Solution ad yer alr, Solution adnn hemen altnda ablonunu daha nceki admda seilen proje yer alr ve aa grnmnde bu proje ierisinde bulunan tm bileenler yer alr. Solution Explorer temel olarak uygulamaya gz atmanz salar ve uygulama iindeki dokmanlarn ynetimi grevini salar. Visual Studio zerinde yer alan View mens aracl ile karnzda grdnz blmleri kapatp aabilirsiniz. rnein kod gelitirirken sadece kod blm ile kar karya kalmak iin sol tarafta bulunan ara kutusu (ToolBox) ve sa tarafta bulunan Solution Explorer blmlerini zerlerinde yer alan kapat butonu ile kapatabilirsiniz. Daha sonra bu blmleri amak iin View mensnden seim yapabilirsiniz. Blmlerin balklarna tklayp fareyi hareket ettirerek blmleri Visual Studio ekrannn istediiniz bir blmne sabitleyebilirsiniz. Not: ToolBox, Windows ya da Web tabanl projelerde button, metin kutusu gibi grsel elerin bulunduu blmdr. lgili proje ablonu seildikten sonra bu blmden istenilen bileen form zerine srklenip braklarak projeye dahil edilmi olur. Eitimin ilerleyen blmlerinde ToolBox zerinde yer alan bileenlerden ve kullanmlarndan bahsedilmektedir.

11 / 45

Yaz Fontunun Kiiselletirilmesi


Yazlm gelitiricinin iyi yazlmlar ortaya karabilmesi iin ncelikle kod yazm olduu editrn karsnda kendini iyi hissetmesi gerekmektedir. Yazlm gelitirici, yazlm gelitirdii editr kendi zevklerine va alma alkanlklarna gre kiiselletirebiliyor olmaldr. Visual Studio size kiiselletirme imkanlar salamaktadr. Yaz tipini deitirmek iin Tools mensnden Options seilir.

Options blm Visual Studionun genel ayarlarnn yer alm olduu blm karnza getirecektir. Bu blmden Environment sekmesindeki Font and Colors seenei zerine gelinerek Visual Studio ekranlarnada kullanlacak olan fontlar kiiselletirebilirsiniz.

12 / 45

ETM : MERHABA DNYA

Blm : Visual Studio le Tann

Konu : Visual Studioda Uygulama Derleme ve altrma

13 / 45

Visual Studio Kullanarak Uygulamalarn Derlenmesi Visual Studio kullanarak uygulamalarn derlenmesi iin C# uygulamasn ieren proje alarak Build mensnden Build Solution tklanr. Visual Studio Kullanarak Uygulamalarn altrlmas Visual Studio kullanarak uygulamalarn derlenmesi iin Debug mensnden Start Debugging (ya da Ctrl F5) ya da Start Without Debugging (ya da F5) tklanr. Konsol uygulamas gelitirilirken Ctrl + F5 ile altrlmas, uygulama sonlandnda kullanc herhangi bir tua basana kadar pencerenin ak kalmasn salar. Bu iki altrma yolunun fark; ilkinde uygulama debug (hata ayklama) modunda altrlrken ikincisinde debug mod kapal olarak altrlmasdr. Derleme Zaman Hatalar Hem komut satrndan hem de Visual Studio 2005 kullanarak uygulama derlendiinde csc.exe, szdizimi ya da semantik (anlam) bir hata yakalarsa bunu raporlar. Eer komut satrndan derlenmise ekrana yazdrlan mesaj ile hatann dosyadaki satr says ve karakter pozisyonu bildirilir. Eer derleme iin Visual Studio kullanlmsa Hata Listesi (ErrorList) penceresi btn hatal satrlar iaret edip hata mesajn bildirir; hataya ift tklanmasyla da uygulama ortam bizi ilgili satra gtrecektir. Uygulama derlendiinde artk hata alnmyorsa derleme zaman hatalarndan arnmz demektir; uygulamann .exesi altrlabilirdir. Uygulama derlenmeden altrlrsa, otomatik olarak nce derlenir, ardndan hata yoksa altrlr. alma Zaman Hatalar Uygulama altrlabilir dosyasnn (*.exe) sorunsuz olarak retilmesinin ardndan altrlr ve eer alma srasnda bir hata oluursa buna alma zaman hatas (exception) denir. Uygulama gelitirici olarak alma zamannda oluacak hatalara kar kod yazmamsak btn programlama ortamlar iin uygulama ekrannda hatayla ilgili bilgilerin yer ald bir ekranla karlalr. Uygulamadan faydalanan kullancnn byle bir ekranla karlamas istenmeyecei iin (en azndan anlaml bir hata mesaj ile karlamasn isteyeceimiz) bu hatalar ele alan kodlarn yazlm olmas gerekir. (Bu konu alma zaman hatalarn ele alma bal altnda ileriki konularda detayl olarak incelenecektir) Visual Studio Hata Ayklaycs Yardmyla Uygulamann zlenmesi Uygulamaya kesme noktalar (break point) koymak ve kullanlan deikenlerin alma zaman deerlerini incelemek,takip etmek iin Visual Studio Hata Ayklaycsndan (Visual Studio Debugger) faydalanlabilir. Eer bir uygulama satr satr ilerlenerek altrlmak istenirse Debug mensnden StepOver kliklenerek altrlr ve yine ayn ekilde uygulama sonlanana kadar ilerlenebilir; satrlar aras ilerlerken uygulamann nerelere dallanp alt takip edilebilir ve kullanlan deikenlerin deerleri incelenebilir. Uygulamaya kesme noktalar koymak iin kod yazdmz C# dosyasnda (*.cs) herhangi bir satra sa tklayp BreakPoint seeneinden Insert BreakPoint tklanr. Ayn zamanda sol kenar boluuna tklanarak da koyulabilir. Kaldrmak iin yine ayn satr zerinden BreakPoint seeneinden Delete BreakPoint tklanr. Ayn zamanda sol kenar boluunda km olan iarete tekrar tklanarak da kaldrlabilir. Uygulama debug modda altrld zaman (F5 ile) herhangi bir satr ya da satrlara koyulan kesme noktasna kadar alp o satrda bekleyecektir. Kullanlan deikenlerin o anki deerlerinin incelenme ihtiyac duyulduunda bu faydal olacaktr. Daha sonra uygulama ister adm adm (F10 ya da F11 ile) ister normal ekilde (F5) altrlmaya devam edilir. F10 (Step Over) ile adm adm hata ayklama yaplrken eer kullanlan bir metot vb varsa onlarn ierisine girilmezken F11 (Step Into) kullanldnda her birinin ierisine girilir.

14 / 45

ETM : MERHABA DNYA

Blm : Main Metodu

Konu : Main Metodu

15 / 45

Main Metodu
Her uygulamann bir balang noktas olmaldr. Bir C# uygulamas altrld zaman almaya Main adndaki metottan balar, kontrol bu metodun sonuna geldiinde ise uygulama sonlanr. (Ya da varsa metot ierisinde return ifadesinin grld yerde uygulama sonlanr) C#, byk-kk harf duyarl (case-sensitive) bir dil olduu iin Main ile main, (Benzer bir rnek vermek gerekirse ReadLine ile Readline) ayn deildir. Dolaysyla balang metodu her zaman ilk harfi byk, geri kalan harfleri kk Main olacak ekilde kodlanmaldr. Bir C# uygulamasnda birden fazla snf olabilir, ancak sadece bir tane giri noktas olmaldr. Ayn uygulamada her birinde Main olan birden ok snf da yer alabilir; ancak sadece bir tane Main altrlacaktr. O yzden uygulama derlendiinde hangisinin kullanlaca belirtilmelidir. Mainin niteleyicileri de nemlidir. Koda baklacak olursa, Main metodunun tanmlamasndaki niteleyiciler public, static ve void olarak belirlenmitir. Bu anahtar kelimeler sonraki modllerde daha ayrntl olarak incelenecek; o zamana kadar public yelerin dier tipler ve yeler tarafndan eriilebilir, static yelerin snf dzeyinde yeler olduunu ve snfAdi.uyeAdi eklinde arlarak kullanlabileceini, void metotlarn ise almas sona erdiinde ortama bir deer dndrmediini bilmek yeterlidir. Main() metodunun eriim belirleyicisi public yerine private da olabilir; bu ekilde dier assemblylerin, yazdmz uygulamann giri noktasn aramamas salanm olur.(Visual Studio, bir programn Main() metodunu otomatik olarak private tanmlar) Ayrca dn tipi de void yerine int olabilir. Bu, uygulama gelitiriciye Main() metodunun baaryla sonlanp sonlanmadn renmek iin geriye saysal deer dndrme frsat salar. Ancak Main() metodu her zaman static olmak zorundadr; yoksa derleyici tarafndan uygulama iin uygun bir giri noktas bulunamaz.

Main() metodu static olmaldr.

16 / 45

ETM : MERHABA DNYA

Blm : Using Direktifi ve System sim Alan Konu : Namespace (sim Alan Kavram)

17 / 45

Namespace (isim alan) Kavram


C#, Microsoft.NET Frameworkn bir paras olarak temel ve faydal programlama ilerini gerekletirmek iin yazlm gelitiricinin hizmetine birok kullanl snf sunmutur. Bu snflar isim alanlar (namespaces) altnda organize edilmilerdir. Bir namespace, benzer amaca hizmet eden snflardan oluan bir kmedir. Ayn zamanda bir isim alan, baka isim alanlarn da ierebilir. Mesela System.IO isim alan dosya giri/k ile ilgili tipleri, System.Data isim alan temel veritaban ilemleri ile ilgili tipleri ierir. Ayrca vurgulamak da fayda var ki; tek bir assembly (mscorlib.dll gibi) istenilen sayda isim alan ierebilir, her bir isim alannda da istenilen sayda tip yer alabilir. Bu, Visual Studio 2005 ierisindeki View mensnden eriilebilecek olan Object Browser yardmyla da grlebilir:

Tek bir assembly, birden fazla isim alanna sahip olabilir.

18 / 45

ETM : MERHABA DNYA

Blm : Temel Giri-k lemleri

Konu : Console Snf

19 / 45

Console Snf
Kitabn u ana kadarki rneklerinde System.Console snf sk sk kullanld, kullanlmaya da devam edilecek. Konsol kullanc arayz, Windows kullanc arayz kadar ekici deilken rnekleri konsol arayz ile kstlamak bize grafik arayznn komplekslii ile uramak yerine renmeye altmz C# temellerine odaklanma frsat sunuyor. Adndan anlalabilecei gibi bu snf konsol uygulamalarnda kullancdan veri alma, kullancya veri gsterme, oluan hata durumlarnda gerekli maniplasyonlar gerekletirmeyi stlenir. Aadaki yeler rnek olarak verilebilir ye BackgroundColor ForegroundColor WindowHeight WindowWidth WindowTop WindowLeft BufferHeight BufferWidth Clear() Title Tanm Ekran ktsnn arka plan ve yaz rengini deitirmeye yarar.

Konsol ekran boyutunu deitirmeye yarar.

Konsol ekrannda yaz yazlabilecek alan belirler.

Konsoldaki yaz alann temizleyen metot. alan konsol penceresinin baln belirler.

20 / 45

ETM : MERHABA DNYA

Blm : Temel Giri-k lemleri

Konu : WriteLine - ReadLine

21 / 45

Tablodakilere ek olarak Console snf, ekrandan yaplan giri ve klar yakalayan yeler tanmlar. Bu yelere snf ad zerinden eriiriz ve daha sonra grlecei zere bu yelere static yeler denir. WriteLine(), ekrana metin olarak yaz yazlmasn salar ve imleci bir alt satrda beklemeye zorlar, bylece arkasndan yazlacak metin bir alt satrdan balar. Write() metodunun tek fark ise imleci ekrana yazlan yaznn hemen sonunda bekletmesidir, bylece arkasndan yazlacak metin ayn satrdan devam edecektir. ReadLine(), ekrana yazlan yazy metin olarak satr sonuna kadar okumay salar, Read() ise ekrana yazlan metnin sadece ilk karakterini okur ve bunu karakterin ASCII karakter setindeki saysal karl olarak dndrr (Daha sonra g rlecek dntrme yntemleri ile bunun karakter karl elde edilebilir), bir dng ierisinde okunduunda ve okuyacak karakter kalmadnda ise -1 dndrr. ReadLine() ve Read() metodu, ekrandaki yazlar kullanc klavyesinden ENTER tuuna baslnca okur; yani uygulama, kaynak kodunda bu iki metoda rastlarsa ENTER tulanana kadar bekleyecektir.

22 / 45

ETM : MERHABA DNYA

Blm : Temel Giri-k lemleri

Konu : Console Snf le Main() Metodu

23 / 45

Console snf ile basit I/O ilemlerini rneklemek iin kullancdan veri alp bu verileri yeniden ekrana yazan aadaki gibi bir Main() metodu yazlabilir: ... public static void Main(string[] args) { //Ekrana yaz yazyoruz... Console.Write("sminizi giriniz : "); //Kullanc ENTER'a basnca o ana kadar yazlan yaz okunur ve bir deikene atlr. string giris = Console.ReadLine(); //Deiken zerindeki bilgiyi ekrana yazyoruz... Console.WriteLine("Merhaba {0}",giris); Console.Write("Yanz ka? : "); giris = Console.ReadLine(); Console.WriteLine("Demek {0} yandasnz...",giris); } ...

Basit I/O ilemleri

24 / 45

ETM : MERHABA DNYA

Blm : Temel Giri-k lemleri

Konu : Yer Tutucu Place Holder

25 / 45

u ana kadarki rneklerde WriteLine() ierisine yazlan birok {0}, {1} kullanmlarn, text alann ardndan da deerlerinin verildii grld. .NET, string formatlamann yeni bir stilini gelitirdi, buna yer tutucu (PlaceHolder) denir. public static void Main(string[] args) { ... int sayisal = 5; string text = "Merhaba"; bool mantiksal = true; // Bir textin ierisinde yazlan '\nyeni bir satr ekler. Console.WriteLine("Saysal deer : {0}\nText deer : {1}\n Mantksal deer : {2}", sayisal, text, mantiksal); Console.ReadLine(); }

String ifade ierisinde birden ok yer tutucu kullanm WriteLine() ierisine ift trnak ("...") arasnda yazlan her ey normalde ekranda grnr. Bunun istisnai durumlarndan biri kullanlan ssl parantezlerdir. Bu ssl parantezler ekran ktsnda grnmez; nk onlar baka deerler iin yer tutarlar. Yer tutmak istediimiz her deer iin bir ssl parantez ierisine 0dan balamak kaydyla indeks numaralar verilir. Bu indekslerin yerine ekranda grnecek deerler ise ift trnaklarn arkasndan verilir ("...",degerler). Eer birden fazla yer tutucu kullanlmsa deerler, virglle ayrlarak ierdeki indeks srasna gre yazlr.

26 / 45

ETM : MERHABA DNYA

Blm : Temel Giri-k lemleri

Konu : Yer Tutucunun Birden Fazla Yerde Kullanlmas

27 / 45

Ayn zamanda tek bir yer tutucunun, tek bir string veri ile birden fazla yerde kullanlmas da mmkndr. rnein asla, asla vazgeemem senden asla ark szlerini koda dkmek istersek; //Tarkan sylyor... Console.WriteLine("{0}, {0} vazgeemem senden {0}","asla"); Yer tutucu indeksine eklenecek bir parametre ile alan genilii belirlenebilir ve ilgili deerin bu alanda saa ya da sola dayal olarak yazdrlmas salanabilir. Console.WriteLine("\"10 birimlik alanda sola dayal :{0,-10}\"",23); Console.WriteLine("\"10 birimlik alanda saa dayal :{0,10}\"",23);

Bir string verinin ierisinde kullanlan \i areti, kendisinden sonra gelen karakterin zel anlamn iptal edip metin olarak ekrana yazdrr. Mesela \{, ekrana { yazlmasn, \\ ekrana \ yazlmasn salar. Buna alternatif olarak string verinin arasna yazld ift trnan nne @ iareti koyularak verinin kelimesi kelimesine ekrana yazlmas salanabilir. rnein @c: \\Documents and Settings\Administrator olarak kodlamak, ekrandaki ktnn c:\\Documents and Settings\Administrator olmasn salar.

28 / 45

ETM : MERHABA DNYA

Blm : Temel Giri-k lemleri

Konu : Nmerik Formatlama

29 / 45

Nmerik Formatlama
Nmerik verilerin nasl formatlanp grntleneceini belirtmek iin format stringi kullanlr. Tam sz dizimi (syntax) {N,M,:FormatString} iken burada N yer tutucunun indeks numaralandrcsn, M alan genilii ve nne koyulan + - iaretiyle yaznn hangi tarafa dayal yazlacan, FormatString ise nmerik verinin nasl gsterilmesi gerektiini belirtir. Btn format seenekleri aadadr: Format Karakteri C ya da c Aklamas Nmerik veriyi lokal para semboln kullanarak para olarak gsterir. Format string harfini Currency kelimesinin ba harfinden alr. Bu format sadece tam saylar iin desteklenir. Hemen arkasna ald say ile (d5 gibi) ekranda gsterilmesi gereken minimum basamak says belirtilebilir ve eer saynn basamak says, belirtilen minimum basamak saysndan fazlaysa saynn bana 0 eklenerek stringe evrilir. Format string harfini Decimal kelimesinin ba harfinden alr. Sayy stel notasyon kullanarak gstermek iin kullanlr. Sayy d.ddddE+ddd formatnda stringe evirir. (d ler birer rakam temsil ediyor) Burada ilk basamak her zaman tam say olur ve format stringinin hemen arkasna belirtilebilecek bir say ile ondalk ksmnda ka basamak bulunaca belirtilebilir. Belirtilmezse varsaylan olarak bu deer 6dr. stel ifade ise her zaman minimum 3 basamaktan oluur; dolaysyla eer ihtiya duyulursa e ya da E (string formatna yazlacak harfin byk m kk m olduuna bal olarak deiiyor)den sonraki rakam 0 larla 3 basamaa tamamlanr Format string harfini Exponential kelimesinin ba harfinden alr. Say, ondalk olsun ya da olmasn varsaylan olarak 2 basamak ondalkla stringe evrilir. Eer tam say ise sonuna ondalk olarak sfrlar eklenir. Eer ondalk say ise ve ondalk ksm ikiden fazla ise varsaylan deer iki olduu iin virglden sonraki deerlerinin sadece ilk ikisi alnarak formatlama yaplr Format stringinin hemen arkasndan verilecek bir deer ile saynn ondalk ksmnda bulunmas istenilen basamak says belirlenebilir (f4 gbi). Format string harfini Fixed kelimesinin ba harfinden alr. Sayy hemen arkasndan verilebilen deere ve basamak saysna bal olarak ya aynen yazlr ya da e string formatyla stringe evrilir. Eer format string ile birlikte bir deer verilmezse say olduu gibi alnr. Eer verilirse; deer, stringe evrilecek saynn istenilen tam ve ondalk basamak saylar toplamn iaret eder. Deer, saynn tam ksmndaki basamak saysndan az ise formatlama stel olarak yaplr, dier durumlarda say olduu gibi evrilir. Format string harfini General kelimesinin ba harfinden alr.

D ya da d

E ya da e

F ya da f

G ya da g

30 / 45

N ya da n

P ya da p

X ya da x

Bu format stringi ile soldan balayarak her 3 basamakta bir araya bin ayrac koyulmas salanr. Hemen arkasndan verilebilecek deer ile istenilen ondalk basamak says verilebilir. Bu deer varsaylan olarak 2dir. Format string harfini Number kelimesinin ba harfinden alr. Say 100 ile arplarak yzde iareti ile sunulur. Hemen arkasndan verilebilecek deer, yzde deerinden sonra gelmesi istenilen ondalk basamak saysdr. Bu deer varsaylan olarak 2dir. Format string harfini Percent kelimesinin ba harfinden alr. Say hexadecimal (onaltl say sistemi) formatta stringe evrilir. Sadece tam saylar iin desteklenir. Format string harfini Hexadecimal kelimesindeki x harfinden alr. .NET formatlama stringleri ve anlamlar

Aada nmerik formatlama ile ilgili baz rneklere yer verilmitir: public static void Main(string[] args) { Console.Title = "Nmerik Formatlama"; Console.WriteLine("Para birimi formatlama: {0:C} / {0:C4}", 234.23); Console.WriteLine("Tam say formatlama : {0:D5}",23); Console.WriteLine("stel formatlama : {0:E3}",234.2); Console.WriteLine("Sabit noktal formatlama : {0:f4}",234.5); Console.WriteLine("Genel formatlama : {0:G2} {0:G4}",234.23); Console.WriteLine("Say(Bin ayra) formatlama : {0:N}",2345678.2); Console.WriteLine("Hexadecimal formatlama : {0:X4}",23); Console.ReadLine(); } .NET formatlama karakterlerinin kullanm sadece konsol uygulamalar ile snrl deil. String.Format() metodu ile btn format stringleri herhangi bir uygulama tipinde (Masast uygulamalar, ASP.NET, XML Web servisleri) kullanlabilir. public static void Main(string[] args) { ... //Yeni bir string veri oluturmak iin string.Format() metodu kullanlyor. string formatStr; formatStr = string.Format("Hesabnza {0:C} yatrmak istediniz. Onaylyor musunuz?",234); Console.WriteLine(formatStr); Console.ReadLine(); } Bu kodlarn altrlmasyla elde edilen ekran kts ise aadadr:

31 / 45

Nmerik formatlama rnekleri

32 / 45

ETM : MERHABA DNYA

Blm : Temel Giri-k lemleri

Konu : Uygulamalarda Yorum Satr

33 / 45

Uygulamalarda Yorum Satr


Uygulamalar iin dokmantasyon salamak nemlidir. Yazlan kod ile ilgili yeterli bilgi salamak, gelitirilme srecinde hi yer almam veya sonradan katlm bir programcnn uygulamay anlayp takip edebilir seviyeye gelmesi srecini fark edilir dzeyde etkiler. yi yorumlar, sadece kodlara baklarak anlalmas kolay olmayacak bilgiyi salarlar ve orada verilmeye allan cevap NE deil NEDEN sorusu olmaldr. C#, uygulama kodlarna yorum eklemek iin u yollar sunar: Tek yorum satr, oklu yorum satrlar ve XML dokmantasyonu. Tek satrlk yorumlar ift bl iareti (//) ile eklenebilir. Uygulama altrld zaman bu karakterlerin arkasndan gelen yazlar satr sonuna kadar ihmal edilir. //Uyelik iin kullancdan ismi alnr Console.Write("Adnz giriniz : "); string ad = Console.ReadLine();

Eer ayn zamanda birden fazla satr yorumlanmak istenirse ya her satra ift bl iareti (//) koyulur ya da blok yorumlama iaretinden faydalanlr. Blok yorum, /* iareti ile balayp */ iaretini grene kadar devam eder. /*Aadaki ilemin sonucu x deikenine atanp kullanlr*/ int x = ();

34 / 45

ETM : MERHABA DNYA

Blm : C# Derleyicisi Kullanarak Uygulama Derleme Konu : C# Komut Satr Derleyici le almak

35 / 45

C# Komut Satr Derleyicisi ile almak


C# uygulamas altrlmadan nce derlenmelidir. Bu i iin Visual Studio gibi uygulama gelitirme ortam kullanlabilecei gibi C# uygulamalar iin csc.exe ile de .NET assemblyleri oluturabilir (csc, C-Sharp Compiler simgeliyor). Bu derleme arac .NET Framework 4.0 SDKnn (Software Development Kit Yazlm Gelitirme Kiti-) ierisinde yer almaktadr. Byk lekli bir uygulama hibir zaman komut satrndan konsol penceresi kullanarak derlenmez; ancak *.cs uzantl dosyann nasl derleneceinin temellerini bilmek bir uygulama gelitirici asndan nemlidir. Ayrca byle bir srece ihtiya duyulmas iin birka sebep gstermek gerekirse; Uygulamann bulunduu ortamda Visual Studio bulunmayabilr. C# bilgimizi biraz daha derinletirmek isteyebiliriz. Bylece otomatik derleme arac yazma hakknda temel bilgimiz artm olur. Bir uygulamay derlemek iin grafik bir arabirim kullanlsa da eninde sonunda csc.exeye bavurulacaktr. Dolaysyla burada arka planda neler olup bittii ile ilgili biraz daha ayrntl bilgi elde etmek istenebilir. (rnein kendi Visual Studio IDEmizi yazmak istediimizde)

36 / 45

ETM : MERHABA DNYA

Blm : C# Derleyicisi Kullanarak Uygulama Derleme Konu : Csc.exenin Tannmas

37 / 45

C# komut-satr derleyicisi kullanlmaya balanmadan nce allan makinenin csc.exeyi tandndan emin olunmas gerekiyor. Eer makine doru bir ekilde konfigre edilmediyse C# dosyalarn derlemek iin her seferinde csc.exenin bulunduu dizini belirtmek gerekecek. Makinemize *.cs uzantl dosylarmz her hangi bir dizinden derleme yetenei kazandrmak iin (Windows XP iletim sistemi zerinde gerekletirilen) aadaki admlar takip etmek gerekir: Bilgisayarma (MyComputer) sa tklanr ve Seenekler (Properties) penceresi alr. Gelimi (Advenced) tab alr ve oradan Ortam deikenleri (Environment Variable) butonu tklanr. Sistem Deikenleri blmnden Path deikenine ift tklanr ve listenin en sonuna csc.exenin ierisinde bulunduu klasrn fiziki yolu yazlr. (Path deikenindeki herbir deer noktal virgl ile ayrlmtr)

38 / 45

ETM : MERHABA DNYA

Blm : C# Derleyicisi Kullanarak Uygulama Derleme Konu : Csc.exeyi altrmann Admlar

39 / 45

Uygulama gelitirme bilgisayar csc.exeyi tandna gre C# komut satr derleyicisi ve notepad kullanarak DemoUyg.exe adnda basit bir tek dosyal assembly gelitirilebilir. Bir notepad aarak aadakiler yazlr: //Basit bir C# uygulamas using System; class DemoUyg { public static void Main(string[] args) { Console.WriteLine("Deneme 1,2"); Console.ReadLine(); } }

Dosya uygun bir dizine (Mesela c:\Ornekler klasrne) DemoUyg.cs olarak kaydededilir. C# derleyicisinin seenekleri incelenecek olursa dikkat edilecek ilk nokta; oluturulacak assemblynin ad ve tipinin nasl belirtileceidir (rnein Uygulamam.exe adnda bir konsol uygulamas, Robotik.dll adnda bir kod ktphanesi, WinUygulamam.exe adnda bir masast uygulamas vb) Her olaslk, csc.exeye komut satr parametresi olarak geirilen zel bir iaret ile temsil edilir. Seenek /out /target.exe /target : library /target : module /target : winexe Tanm Oluturulan assemblyye isim vermek iin kullanlr. Varsaylan ola rak oluan assemblynin ad, balang inputu olan *.cs dosya addr. altrlabilir konsol uygulamas gelitirmek iin bu seenek kullanlabilir. Varsaylan kt tipi budur. Bu seenek tek dosyal bir *.dll assemblysi ina edilir. Bu seenek bir module oluturur. Her bir modl, ok dosyal bir assemblynin elemandr. Target:exe ile masast uygulamalar gelitirilebilirken, bu seenek arka planda konsol penceresinin kapatlmas gerektiini garanti eder. Tablo 4: C# derleyisinin kt tabanl seenekleri

DemoUyg.csi DemoUyg.exe ismindeki altrlabilir bir uygulamaya derlemek iin komut penceresinden *.cs dosyann dizinine geilir:

Derlenecek dosyann dizinine inilir. ve aadaki komut satr girilip ENTERa baslr:

40 / 45

DemoUyg.cs, ayn isimli altrlabilir (.exe) dosyaya derleniyor. Burada bilinli olarak /out kullanlmad. O yzden programn giri noktasn ieren (Main() metodu) DemoUyg snfndan retilen altrlabilir dosya *.cs dosyasyla ayn isimde (DemoUyg.exe olarak) ilgili dizinde oluturulur. Bu arada birok C# iareti, ksaltmalar tanr. Burada da /target yerine /t kullanlabilir:

Derleme /target:exe yerine ksaca /t:exe eklinde de yaplabilir. Ayn zamanda bu iaret (t:exe) C# derleyicisinin varsaylan dosya kt tipidir; dolaysyla DemoUyg.cs u ekilde de derlenebilir.

Varsaylan /target:exe olduu iin hibir dosya kt tipi belirtilmediinde target:exe olarak ilem yaplr. Artk retilen DemoUyg.exe komut satrndan ya da retildii dizinden altrlabilir. Ekran ktlar aadaki gibidir:

41 / 45

Sayfa baarl bir ekilde derlenip programn altrlabilir assemblysi (DemoUyg.exe) oluturulur ster c dizini altndaki dosyaya gidip, ister komut-satrndan .exe dosyasnn ad yazlp ENTERa baslarak altrlabilir.

Derleme sonucunda oluan .exe dosyasnn altrlmas Ve son kt aadaki gibi olur:

alan programn ekran kts


42 / 45

*.cs dosyasnda bir deiiklik yaplmad srece uygulama, retilen bu *.exe dosyasndan altrlabilir. *.cs dosyasnda bir deiiklik yapldnda ise uygulama, gncel hali ile almaya devam etsin diye yeniden derlenmelidir.

43 / 45

ETM : MERHABA DNYA

Blm : C# Derleyicisi Kullanarak Uygulama Derleme Konu : Framework Versiyonu ve Path Deikeni Gncellenmesi

44 / 45

C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319 Tabiki sizlerin adresi kullandnz Frameworkn versiyonu ve .NET Framework 4.0 SDKsnn dizininizdeki yerine bal olarak deiebilir. Path deikeni gncellendikten sonra test etmek amacyla ak olan btn konsol pencereleri kapatlp yeni bir tane alr ve komut penceresindeyken csc ?/ ya da csc -? yazlr. Eer iler yolunda gitmise C# derleyicisinin sunduu seenekler listesinin elde edilmi olmas gerekmektedir. Bu deikenin eklenmesiyle artk herhangi bir .NET aracn herhangi bir komut penceresinden altrmak mmkndr.

Bu ders notu, Ak Akademi projesi erevesinde TCM tarafndan Microsoft Trkiye iin hazrlanmtr. Tm haklar Microsoft Trkiye ye aittir. zinsiz oaltlamaz, para ile satlamaz.

45 / 45