Kategoriler
ASP.Net Dersleri ASP.NET MVC C# Dersleri Visual Studio

Visual Studio Seçili Dosyayı Solution Explorer da Gösterme

Büyük projeler veya Katmanlı Miamari projelerinde bu trick işinize çok yarayacaktır.

Çalıştığınız kod bloğunun veya sayfanın hangi dosya ve ya klasör altında barındığını kolayca görebilirsiniz.

Tools > Options > Project & Solutions sekmesi altından “Track Active Item in Solution Explorer” seçeneğini işaretlemeniz yeterlidir.


 

Örnekde yer aldığı üzere çalıştığım sayfa “App.xaml.cs” dosyası ve Visual Studio bu dosyanın Solution Explorer da nerede yer aldığını otomatik olarak seçmektedir/göstermektedir..

Kategoriler
C# Dersleri

C# Konsol Sayı Tahmin Oyunu (Skorlu ve Detaylı)

C# Konsol Sayı Tahmin Oyunu

Oyun Yapımında Kullanılan Temel Yapılar ve Kodların Özeti:

  1.  Veri Tipleri ve Değişkenler
  2.  If / Else Karar Yapısı
  3.  Random Sınıfı (Rastgele Sayı Üretmek)
  4.  For Döngüsü

 

Skor kaydetmeli ve 5 el’den oluşan bir sayı tahmin oyunu… Oyun ile ilgili soru ve isteğiniz olursa yorum kısmından ulaşabilirsiniz.

 

KODLAR

 

using System;
using System.Threading;

namespace ConsoleApp2
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.Title = "www.SahinSezgin.com / Sayı Tahmin Oyunu";
            int ben = 0;
            int pc = 0;


            for (int i = 1; i <= 5; i++)
            {

                Random rastgele = new Random();
                int sayi1 = rastgele.Next(1, 6);
                Console.ForegroundColor = ConsoleColor.Gray;
                Console.Write("Lütfen 1 ve 5 Arasında Bir Rakam Giriniz: ");
                int sayi2 = Convert.ToInt32(Console.ReadLine());

                if (sayi1 == sayi2)
                {
                    ben++;
                    Console.Clear();
                    Console.WriteLine("Tebrikler Kazandınız...");
                    Console.WriteLine("Bilgisayarın Tercihiz: " + sayi1);
                    Console.WriteLine("Sizin Tercihiz: " + sayi2);
                    Thread.Sleep(2000);
                    Console.Clear();
                }

                else

                {
                    pc++;
                    Console.Clear();
                    Console.WriteLine("Kaybettiniz :-( ");
                    Console.WriteLine("Bilgisayarın Tercihiz: " + sayi1);
                    Console.WriteLine("Sizin Tercihiz: " + sayi2);
                    Thread.Sleep(2000);
                    Console.Clear();
                }

                Console.ForegroundColor = ConsoleColor.Cyan;
                Console.WriteLine("************** PUAN DURUMU **************");
                Console.WriteLine("Benim Skorum : " + ben);
                Console.WriteLine("PC Skoru: " + pc);
                Console.WriteLine("*****************************************");
            }

            if (ben < pc)
            {

                Console.Clear();
                Console.ForegroundColor = ConsoleColor.Yellow;
                Console.WriteLine("OYUN SONUCU: KAYBETTİNİZ!!!");
                Console.WriteLine("Benim Skorum : " + ben);
                Console.WriteLine("PC Skoru: " + pc);
            }

            else
            {

                Console.Clear();
                Console.WriteLine("Genel Durum: KAZANDINIZ!!!");
                Console.WriteLine("Benim Skorum : " + ben);
                Console.WriteLine("PC Skoru: " + pc);
            }

            Console.ReadLine();
        }
    }
}

 

Kategoriler
C# Dersleri

C# Form Üzerine Nesne Eklemek ve Genel Özellikleri

C# Windows Form üzerine nesne eklemek için 2 farklı yöntem kullanılmaktadır. Birinci yöntem de fare ile kontrole çift tıklandığında (önce eklenecek nesne ‘toolbox’ dan seçilmeli) form üzerine otomatik olarak eklenir. Eğer Proje ekranınızda Toolbox aktif değilse üst menüde ki “VIEW” altından tekrar açabilirsiniz. Veya Kısayol tuşu Ctrl+Alt+X ‘dir.

 

İkinci yöntemde ise önce ‘ToolBox‘ dan nesneyi seçeriz ve daha sonra Form üzerin de nereye eklemek istiyorsak mouse ile istenilen koordinata, istenilen boyutlarda eklenecek kontrol çizilir. Farenin tuşunu bıraktığınız da kontrol, form üzerine eklenmiş olur.

Kullanacağımız her bir kontrolün Properties (Özellikler) adı verilen kendilerine ait nitelikleri vardır. Bu özellikleri kullanarak  bir kontrolün rengi, boyutu, ismi gibi niteliklerini değiştirebilirsiniz. Bu özelliklerin bir kısmı bütün ToolBox nesnelerin de ortak olarak bulunmaktadır.

 

 

Nesnelerin Ortak Propertiesleri (Özellikleri):

Başlıcaları Aşağıda ki gibidir:

Name: Nesnenin Kodlama yapısı içerisin de kullanılacak olan ismidir.

Text: Nesnenin Kullanıcı tarafından görüntülenecek olan ismidir.

BackColor: Nesnenin rengini ayarlamanıza yarar.

Enabled: Nesneyi aktif veya pasif olarak ayarlamanıza  yarar (True-False).

Font: Nesnenin yazı tipi özelliklerini ayarlamak için kullanılır (Font rengi, büyüklüğü v.s).

Visible: Nesnenin görünür yada görünmez yapmaya yarar.

Location: Nesnenin koordinatlarını sayısal olarak ayarlamanıza ve nokta atışı yerleşim yapmanıza yarar.

Size: Nesnenin boyutunu ayarlar.

Nesnelerin bu özelliklerini ayarlayabilmek için, Form üzerine eklediğimiz buton veya benzer nesnenin üzerine sağ tıklayıp “Properties” dediğimiz de açılan pencereden yukarıda ki mevcut ayarları görebilir veya değişiklik yapabilirsiniz. Bu özellikler Properties paneli yerine arka planda kod yazarakta değiştirilebilir. Bu kodları “Form” penceresi açıkken formun üzerine çift tıkladığımızda açılan kod sayfasında ki “Form Load” kısmına yazmalısınız.

Örnek:  Button1.Text = “SahinSezgin.Com”

 

 

 

 

Kategoriler
C# Dersleri

C# Diziler ve Dizi Tanımlama

C# da diziler “System.Array” sınıfı altında yer alır. “Array” kelime anlamı olarak da “dizi, düzen, sıraya dizmek, sıralamak” olarak kullanılır. Peki biz C#’da dizileri ne için ve nerede kullanırız? Örnek olarak ufak bir iş yeriniz var ve toplamda 10 adet çalışan işçiniz var. Siz bu işçilerin her birinin adını ve telefonlarını kaydetmek istiyorsunuz. O halde 10 tane string “isim” adında bir değişken tanımlamanız ve bunun yanında 10 tane de int “telefon_numarası” şeklinde değişken tanımlamanız lazım yani toplamda 20 farklı değişken tanımlamadan bu işlemi yapamazsınız. Yüzlerce çalışanınız olduğunu düşünün giderek bu işin içinden çıkılmaz bir hal alacaktır. Burada yardımımıza “Array” yani “Diziler” gelecektir. C# projemiz üzerinde “Çalışanlar” isminde bir dizi tanımlayıp tüm işçilerin isimlerini tek bir diziye kaydedebilirsiniz. Hepsi için ayrı ayrı tanımlama ve değişken tanımlamanıza gerek kalmaz. Diziler aynı grup ve aynı amaçtaki verileri saklamak için kullanılır.

Diğer bir örnek ise haftanın günleri.. “gün1, gün2, gün3…” şeklinde 7 farklı değişken tanımlamak yerine “Haftanın Günleri” isminde tek bir dizi tanımlayıp tamamını bunun içerisin de saklayabiliriz.  Dizi tanımlama ve kullanımına dair canlı örnekleri aşağıda inceleyelim…

Bir dizi içerisinde birden fazla değeri tekbir başlık altında tutabilmektedir. Buradaki herbir dizi elemanına erişmek için dizi içerisindeki indeks değerleri kullanılır. Indeks numarası 0 dan başlayarak ardışık sayılardan oluşur. Örneğin aşağıda resimde tanımlaman gunler dizisi 7 elemanlı bir dizidir. Bu dizinin indeks numaraları 0 ile 6 arasındadır.  İlk elemanın indeks numarası 0 (sıfır) , son elemanın indeks numarası ise 6 dır. ve Program içerisinde dizi içerisindeki bir elemana diziadi[indexnumarasi]   şeklinde erişilebilir.

[su_note note_color=”#c866ff” ]String Bir Dizi Tanımlama[/su_note]

Bu örnekte haftanın günlerini bir diziye atarak nasıl kullanıldığına bakalım. Dizileri tanımlarken birden fazla yol kullanabilirsiniz. Bu örneğimiz için haftanın günlerini farklı dizi tanımlama yöntemleri ile inceleyelim.

Yöntem: 1

Genel Kullanım Mantığı

VeriTipi[] DiziAdi = new veritipi[Dizinin Toplam Eleman Sayısı];

Örnek Uygulama:

string[] haftaninGunleri = new string[7]; 
haftaninGunleri[0] = "Pazartesi";
haftaninGunleri[1] = "Salı";
haftaninGunleri[2] = "Çarşamba";
haftaninGunleri[3] = "Perşembe";
haftaninGunleri[4] = "Cuma";
haftaninGunleri[5] = "Cumartesi";
haftaninGunleri[6] = "Pazar";
Console.WriteLine(haftaninGunleri[3]);
Console.ReadKey();

Satır 1      :  Sisteme “haftaninGunleri” isimli bir string bir dizi tanımladık ve “Eşittir” simgesinden sonra dizinin toplam eleman sayısını belirttik.
Satır 2-8 :
  Veriler Hafızada sıfırdan başlayarak sıra ile bulunur. Haftanın günlerinin tamamını tek tek indeks numaralarına göre tanımladık. Dikkatinizi çekmiştir, haftanın birinci günü “Pazartesi” değil, Sıfırıncı günü pazartesidir. Her ne kadar saçma gelse de dizilerde elemanlar 1’den başlamaz her zaman saymaya sıfırdan başlar. Fakat şu durum karıştırılmamalıdır, haftanın 7.günü pazar aynı zamanda dizinin 6.elemanıdır. 
Satır 9   :  
Console.WriteLine() metodu ile haftanın 4.günü olan Perşembeyi ekrana yazdırmak istedik. Fakat bu işlemi yaparken dizinin 4.elemanını seçersek yanlış olacaktır çünkü diziler saymaya sıfırdan başlar demiştik. Bundan dolayı perşembeyi ekrana yazdırmak için dizinin 3.elemanını ekrana yazdırmamız lazım.
Satır 10 :   
Console.ReadKey() metodu ile ekranın hemen kapanmamasını ve  ekranda “Perşembe” yazısını görmenizi sağladık. Console.Readkey() metodunun kullanım alanı tabi ki bu değil fakat şuan ekranın kapanmaması için kullanabiliriz.

Kod Çalıştığında Programın Ekran Çıktısı : 

diziler_array_ekran_ciktisi_1

Yöntem: 2

Genel Kullanım Mantığı:

VeriTipi[] DiziAdi = {"Eleman1", "Eleman2" .....};

Örnek Uygulama:

string[] haftaninGunleri = { "Pazartesi", "Salı", "Çarşamba", "Perşembe", "Cuma", "Cumartesi", "Pazar" };
Console.WriteLine(haftaninGunleri[6]);
Console.ReadKey();

Satır 1    : “haftaninGunleri” isminde bir dizi tanımladık ve birinci yöntemde olduğu gibi satır satır belirtmek yerine direkt olarak dizinin tüm elemanlarını süslü parantez içerisinde belirttik.
Satır 2   :  Console.WriteLine() metodu ile haftanın 7.günü olan Perşembeyi ekrana yazdırmak istedik. Fakat bu işlemi yaparken dizinin 7.elemanını seçersek yanlış olacaktır ve program hata verecektir çünkü dizide 7.elemanı yok unutmayalım diziler saymaya sıfırdan başlar demiştik. Bundan dolayı pazarı ekrana yazdırmak için dizinin 6.elemanını ekrana yazdırmamız lazım.
Satır 3 :   
Console.ReadKey() metodu ile ekranın hemen kapanmamasını ve  ekranda “Pazar” yazısını görmenizi sağladık. Console.Readkey() metodunun kullanım alanı tabi ki bu değil fakat şuan ekranın kapanmaması için kullanabiliriz.

Not: Yöntem 2’de , ilk yöntemde ki gibi dizilerin indeks numarasını (sıra numarasını) tek tek belirtmedik fakat bu bir problem değil çünkü siz belirtmezseniz C# bunu otomatik olarak kendisi atayacaktır. Daha iyi anlaşılması için aşağıda ki resmi inceleyebilirsiniz.

gunlerdizi

 

[su_note note_color=”#c866ff” ]Integer Bir Dizi Tanımlama[/su_note]

Birinci örneğimiz de string dizileri tanımlamayı öğrendik, bu örneğimiz de ise Integer yani sayısal verilerle işlem yapmayı öğreneceğiz. Dizi kullanımı genel mantığını bir üst örnekte detaylı olarak belirttiğim için direk örneğe geçiyorum.. Kullanım ve yazım mantığı tamamen aynı tek fark ise string ifadeler de kullandığımız “Tırnak İşaretlerini” integer veriler için kullanmıyoruz.. Bunun dışında her şey aynı 🙂

int[] lotoCekilisi = new int[6];
           
lotoCekilisi[0] = 21;
lotoCekilisi[1] = 5;           
lotoCekilisi[2] = 11;            
lotoCekilisi[3] = 38;           
lotoCekilisi[4] = 44;           
lotoCekilisi[5] = 9;
           
Console.WriteLine(lotoCekilisi[3]);

 

[su_note note_color=”#c866ff” ]For Döngüsü ile Dizinin Tüm Elemanlarını Yazdırma[/su_note]

            string[] arabaMarkalari = new string[8];

            arabaMarkalari[0] = "Mercedes";
            arabaMarkalari[1] = "BMW";
            arabaMarkalari[2] = "Audi";
            arabaMarkalari[3] = "Fiat";
            arabaMarkalari[4] = "Citroen";
            arabaMarkalari[5] = "Opel";
            arabaMarkalari[6] = "Ford";
            arabaMarkalari[7] = "Honda";



            for (int i = 0; i < arabaMarkalari.Length; i++)
            {
                Console.WriteLine(arabaMarkalari[i]);
            }

 

[su_note note_color=”#c866ff” ]Foreach Döngüsü ile Dizinin Tüm Elemanlarını Yazdırma[/su_note]

            string[] arabaMarkalari = new string[8];
            arabaMarkalari[0] = "Mercedes";
            arabaMarkalari[1] = "BMW";
            arabaMarkalari[2] = "Audi";
            arabaMarkalari[3] = "Fiat";
            arabaMarkalari[4] = "Citroen";
            arabaMarkalari[5] = "Opel";
            arabaMarkalari[6] = "Ford";
            arabaMarkalari[7] = "Honda";



            foreach (var item in arabaMarkalari)
            {
                Console.WriteLine(item);
            }

 

Kategoriler
C# Dersleri

C# For Döngüsü ve Örnek Alıştırmalar

C# For döngüsü hemen hemen en çok kullanılan döngüler arasındadır.  Yalnızca C# dilinde değil tüm yazılım dillerinin ortak bir özelliğidir.  Örnek olarak bir C# Konsol uygulamasında ekrana 100 defa “merhaba” yazdırmak istesek bu bizim için bir işkenceye dönüşecektir. Veya aynı mantıkla 1 ile 1.000 arasında ki tüm sayıları ekranda görmek istesek tek tek yazmamız gerekmektedir bu gibi durumlarda imdadımıza “FOR” döngüsü koşmaktadır.

For döngüsü ile çalışırken temel 3 adet kuralımız vardır. Bunlardan birincisi döngünün başlangıç değeri, ikincisi döngünün bitiş değeri ve sonuncusu ise başlangıç ile bitişin arasında nasıl bir yol izleneceği..

Kısacası “For” veya benzeri döngü komutları sayesin de tekrar eden işleri aynı kod bloklarını yazmadan bir döngü içerisin de tutar isek, çok daha kod ile istenilen algoritmayı sağlamalıyız. Örneğin 1000 kişilik bir listeyi tek tek ekrana yazdırmak yerine bir for döngüsü kullanarak bu işlemi tek satırda çözebiliriz.

 

 

[su_note note_color=”#c866ff” ]For döngüsüyle 10 Defa Ekrana İsim Yazdırma[/su_note]

for (int i = 1;    i <=10;     i++)

{              

Console.WriteLine("Şahin Sezgin ÖZDEMİR");

}

Açıklama:  “for” anahtar kelimesini yazdık ve daha sonra parantezleri açtık ve parantezin altına da yapmak istediğimiz işlemi belirtmek adına süslü parantezleri açıp kapattık. Parantez blokları içerisine üst kısımda bahsettiğimiz 3 ana temel kuralı girdik.


1-  Başlangıç noktası  (int i  =  1) : Burada integer değerine “i” ismini verdik buna farklı bir isimde verilebilirdi. Öncelikle “i” değerinin “1” den başlayacağınız belirttik.
2- Bitiş Noktası (i <=10 ) : “i” değerinin 10’a kadar gitmesini söyledik.. Yani 1 den başlasın ve 10 rakamına gelene kadar aynı işlemi tekrar etsin.
3- Artık Miktarı (i++): Başlangıç noktasını 1, bitiş noktasını 10 belirlemiştik fakat 1’den 10’a giderken nasıl bir yol izlemeli bunu da belirtmemiz lazım “++” operatörünün anlamını sayıları tek tek artır anlamına gelmektedir. Yani sonuç olarak 1 den başla 10 a kadar git ve bitiş noktasına gelene kadar tek tek sayıları artır.

[su_note note_color=”#c866ff” ]For döngüsüyle 1 ile 50 Arasında ki Sayıları Ekrana Yazdırma[/su_note]

for (int i= 1;    i <=50;     i++)

{              

Console.WriteLine(i);

}

Örneğimizin çalışmasını adım adım inceleyelim.

Örnek 1’de olduğu gibi aynı mantıkla devam ediyoruz. Başlangıç, bitiş ve artış miktarımızı belirledik. Fakat bu örnekte ekrana Console.WriteLine komutu ile direk bir metin yazdırmak yerine “i” değerinin kendisini yazdırdık. Kodu çalıştırdığınızda 1 ile 50 arasında ki tüm rakamların ekrana yazıldığını göreceksiniz.

Adım1: (int i=1) Kontrol değişkenimizin başlangıç değeri 1 olarak verilmiş.

Adım2: (i<=50 i değişkenimizin değeri koşulumuzla test ediliyor. “i” değeri 50 ve 50’den küçük olduğu sürece döngü çalışacak.

Adım3: Koşul sağlandığı için döngü bloğuna girildi. Ekrana “i” değeri yani 1 yazdırıldı.

Adım4: (i++) Döngü bir kez çalıştıktan sonra i++ ile i değeri 1 arttırıldı. Yani 2 oldu.

Adım5: Tekrar koşul kontrol edildi, “i” değeri 50’den küçük olduğu için tekrar döngü bloğuna girildi.

Adım6: Bu işlem “i” değeri birer birer artıp 50 olana kadar devam eder.

Adım7: “ i” değeri 50 olduğunda koşul sağlanamaz ve döngü sona erer.

 

[su_note note_color=”#c866ff” ]For döngüsüyle 1 ile 50 Arasındaki  Sayıların Toplamını Alma[/su_note]

int toplam = 0;

for (int i= 1;    i <=50;     i++)

{              

toplam += i;

}

Console.WriteLine(toplam);

Örneğimizin çalışmasını adım adım inceleyelim.

Başlangıç : (int toplam = 0)  : “toplam” isminde bir değişken tanımladık ve ilk değerini sıfır olarak atadık.

Adım1  (int i=1) Kontrol değişkenimizin başlangıç değeri 1 olarak verilmiş.

Adım2 (i<=50) i değişkenimizin değeri koşulumuzla test ediliyor. “i” değeri 50 ve 50’den küçük olduğu sürece döngü çalışacak.

Adım3 (toplam += i) : Toplamın ilk değerini sıfır olarak atamıştık. Döngü her çalıştığında “i” değeri 1 artacak ve artan değeri “toplam” değişkenine atayacak. Döngü her döndüğünde “i” değerini yeniden toplam değerinin üzerine ekleyecek. (+=) operatörünü detaylı olarak Atama operatörlerinde anlatmıştık.

Adım4  (i++) Döngü bir kez çalıştıktan sonra i++ ile i değeri 1 arttırıldı. Yani 2 oldu.

Adım5: Tekrar koşul kontrol edildi, “i” değeri 50’den küçük olduğu için tekrar döngü bloğuna girildi.

Adım6:Bu işlem “i” değeri birer birer artıp 50 olana kadar devam eder.

Adım7: “ i” değeri 50 olduğunda koşul sağlanamaz ve döngü sona erer ve toplam değeri ekrana yansıtır.

Not:  Console.WriteLine(toplam) kodu for döngüsünün içinde olsaydı “i” değeri her arttığında aynı zamanda ekrana toplamı yazdırırdı. “i” değeri 2 oldu sonucu yazdırdı, “i” değeri 3 oldu sonucu yazdırdı.. Yani tek tek “i” artar “sonuç yazar” fakat bu kodu döngünün dışına aldığımız için direk olarak ekrana tek bir sonuç yazdırdı.

[su_note note_color=”#c866ff” ]For döngüsüyle 1 ile 50 Arasındaki Çift Sayıların Toplamını Alma[/su_note]

int toplam = 0;

for (int i = 1; i <= 50; i++)

  {

if (i % 2 == 0)
 {
     toplam += i;
 }

   }
            
Console.WriteLine(toplam);

Örneğimizin çalışma mantığı.

 

Bu örnekte görmüş olduk ki “for” döngüsünün içerisin de bir “IF” bloğu kullanabiliriz. Bir üstte ki örnekten tek farkı 1-50 arasında ki yalnızca çift sayıların toplamı..

Not  (i % 2 == 0) : Bu bir mod alma yöntemidir. Çalışma mantığı matematikte ki ile aynıdır. Bir sayının 2’ye bölümünden kalan sıfır ise, o sayı çift bir sayıdır.  Mod alma hakkında detaylı bilgi ve örnekler için

 

[su_note note_color=”#c866ff” ]For döngüsüyle Alfabeyi Ekrana Yazdırma[/su_note]

char karakter;

for (karakter = 'a'; karakter <= 'z'; karakter++)

{

    Console.Write(karakter + " "); 
                
}

Örneğimizin çalışmasını adım adım inceleyelim.

Adım1  : “karakter” isminde ‘char’ tipinden bir değişken tanımladık. (Veri Tipleri ve Char hakkında daha fazla bilgi için tıklayınız….)

Adım2 (karakter = ‘a’ ) : Başlangıç noktamız illa bir rakam olmak zorunda değil. Bu örnekte başlangıç noktasını ‘a’ harfi olarak belirledik.

Adım3 (karakter<=’z’) : Döngünün bitiş noktasını ‘z’ harfi olarak ayarlardık.

Adım4  (karakter++) :  Döngü ‘a’ ile ‘z’ arasında ki hiç bir harfi atlamadan birer birer ilerlemesi için (++) operatörünü kullandık

Adım5: WriteLine() metodu ile ekrana “karakter” değişkenini yazdırdık ve bu sayede tüm alfabeyi görmüş olduk.

 

[su_note note_color=”#c866ff” ]For döngüsüyle Kullanıcıdan Alınan İsmi 10 Defa Yazdırma[/su_note]

string isim;

Console.WriteLine("İsminiz Nedir ?");

isim = Console.ReadLine();

Console.WriteLine("------------------------------");
            
for (int i = 1; i <= 10; i++)
            
{
              
  Console.WriteLine(isim);
            
}

Adım1 : “isim” adında  ‘string’ tipinden bir değişken tanımladık. (Veri Tipleri ve String hakkında daha fazla bilgi için tıklayınız….)

Adım2 : Console.WriteLine metodu ile kullanıcıya ismini sorduk…

Adım3 : Kullanıcının yazdığı ismi geçici olarak hafızada tutabilmek ve sonrasında kullanabilmek için bu değişkeni Console.ReadLine() metoduna eşitledik.

Adım4  Daha sonra for döngüsünü oluşturduk. Ekrana 10 defa yazdıracağımız için başlangıç noktası: 1 ve bitiş noktasını da: 10 olarak ayarlardık.

Adım5: For döngüsünün içerisine de Console.WritiLine() metodu ile daha önce Console.ReadLine() metodu ile hafızaya aldığımız “isim” değişkenini yazdırdık.

 

[su_note note_color=”#c866ff” ]For döngüsüyle 1 ile 1000 Arasında Hem 2 ye hemde 21 e Bölünen Sayıları Yazdırma[/su_note]

for (int i = 1; i <= 1000; i++)
          
    {
            
 if (i % 2 == 0 && i % 21 == 0)
               
 {
                
   Console.WriteLine(i);
               
 }
     }

Adım1 : “Döngümün Başlangıç Noktasını “1” ve bitiş noktasını “1000” olarak belirledim. Artış miktarını ise (++) Operatatörü ile birer birer olarak ayarladım.

Adım2 : For döngüsünün içerisine bir “IF” bloğu yazdık ve içeride ki koşulları  “&& (ve)” Operatörü ile birleştirdik. Yani “i” sayısı hem 2’ye hem de 21’e bölünmeli.

Adım3 : Console.WriteLine() metodu ile “i” değişkenini ekrana yazdırdık.

[su_note note_color=”#c866ff” ]For döngüsüyle 1 ile 100 Arasında ki TEK Sayıları Yazdırma[/su_note]

for (int i = 1; i <=100; i+=2)
         
   {

 Console.WriteLine(i);
           
   }

Adım1 : “Normalde aynı işlemi for döngüsünün içerisine bir IF bloğu tanımlayarak mod alma işlemi ile yapabiliriz ve üst kısımlarda bunun örneği mevcut. Fakat bu sefer mod alma yöntemi ile değilde, sayının artış miktarını (++) Operatörü ile tek tek artırmak yerine (+=2) Operatörü ile ikişer ikişer artırdık ve hem IF’den hemde Mod almaktan kurtulmuş olduk.

 

Kategoriler
C# Dersleri

C# Karar Yapıları (Switch – Case)

Switch-Case karar yapıları, If – Else karar yapılarının mantığı ile aynıdır, yani belirli bir sıraya veya belirli bir koşula göre hareket etmemizi sağlar.. . O halde bunların birbirinden farkları nelerdir kısaca bunu özetleyelim. Öncelikle bilmeniz gereken, IF-ELSE ile yaptığınız her şeyi Switch-Case ile yapabilirsiniz ama Switch-Case ile yapılan her şeyi IF-ELSE ile yapamazsınız. Aralarında ki fark ise, IF-ELSE birden fazla durumu aynı anda kontrol etmemize yarıyordu, fakat Switch-Case için her koşul ve her durum ayrı ayrı tanımlanıp ona göre işlem yapılmaktadır yani IF-ELSE ile durumlar değerlendirilirken, Switch-Case ile direk olarak nokta atışı yaparsınız.. Diğer bir değişle  IF-ELSE yapıları %100 sonuç odaklı çalışmaz yani yani ihtimallere göre şekillenir örneğin: C# IF-ELSE Karar Yapıları ile çalışırken sırasıyla blokları gezeriz ve doğru olan bloğu bulana kadar devam ederiz. Doğru blok bulunmazsa ELSE komutu ile sonucu yazdırırız, fakat Switch-Case bu şekilde çalışmaz, tanımlanan tüm blokların arasını tek tek gezer ve hepsi için bizlere ayrı ayrı sonuçlar listeler. Aşağıda ki örnekle bu konunun biraz daha pekişeceğine inanıyorum.

Örnek 1:  

Kullanıcıdan bir takım girmesini isteyelim ve girdiği takımlara göre o takımın efsane oyuncusunu ekrana yazdıralım.

1- ‘takim’ isminde bir değişken tanımladık.
2- Console.WriteLine() metodu ile Kullanıcıdan takım bilgisini girmesini istedik.
3- Console.ReadLine() metodu ile girilen takımı belleğe aldık.
4- Switch-Case bloklarını oluşturduk  ve kod bloğunun için doldurduk.

Not: Her bir durum için örnekte ki gibi yeni bir ‘case’ tanımladık ve bu tanımın karşılığını yazdık ve ‘break’ komutu ile sonlandırıp bir sonraki ‘case’ tanıma geçtik. En altta ki ‘default’ değeri ise, listede bulunmayan takım yazılırsa ne olacak? bunun sonucunu hata olarak ekrana yazdırmak için belirledik.

            string takim;
            Console.WriteLine("Hangi Takımı Tutuyorsunuz ?");
            takim = Console.ReadLine();
            
            switch (takim)
            {
                case "fenerbahce" : Console.Write("Alex De Souza!"); break;
                case "galatasaray" : Console.Write("Gheorghe Hagi"); break;    
                case "beşiktaş": Console.Write("Sergen Yalçın"); break;  
                case "trabzon": Console.Write("Hami Mandıralı"); break; 
                default: Console.Write("Hatalı Giriş"); break;  
            }


            Console.ReadKey();

 

Örnek 2:  

Trafik lambalarına göre Switch-Case karar yapıları oluşturalım. Örneğin; ekrana “kırmızı” yazıldığında ne yapılması gerektiği, “sarı”  yazıldığında ne yapılması gerektiğini ve son olarak “yeşil” yazıldığında ne yapılması gerekildiğini tek tek tanımlayalım… Tabi birde “default” değer tanımlayıp bu renklerin dışında bir şey yazılırsa ekrana hata metni yazdıralım. Unutulmaması gereken diğer bir konu ise; tanımlanan her ‘case’ den sonra ‘break’ komutu ile sonlandırıp yeni bir ‘case’ tanımlamamız lazım.

            string trafikLambasi;
            Console.WriteLine("Lütfen Trafik Lamba Renklerinden Birisini Giriniz");
            trafikLambasi = Console.ReadLine();

            switch (trafikLambasi)
            {

                case "kırmızı":
                Console.WriteLine("DUR !!! Yayaya Yol Ver!");
                break;

                case "sarı":
                Console.WriteLine("HaZIR OL !!!");
                break;

                case "yeşil":
                Console.WriteLine("GO GO GO !! :)");
                break;

                default:
                Console.WriteLine("HATALI BİR RENK ADI YAZDINIZ - LÜTFEN KONTROL EDİNİZ"); 
                break;
            }

            Console.ReadKey();

Yukarıda ki örnekten farklı olarak kodları yan yana değilde alt alta yazdık. Aralarında hiç bir fark yok. Hangi örnekte ki yazımı daha çok beğendiyseniz, hangi yazım türü sizin için daha kolay geldiyse o şekilde yazabilirsiniz.

Ekran Çıktısı: 

screenshot_4

Proje Kaynak Dosyaları:

Yukarıda ki 2 örneği de aşağıda ki linkten indirip, Visual Studio ile açtığınız taktirde canlı olarak inceleyebilir ve konsol ekranını görebilirsiniz.

[button color=”orange2″ link=”https://www.sahinsezgin.com/wp-content/uploads/2016/11/KararYapilarSwich-Case.zip” size=”bigger” icon=”brankic-icon-download2″]İNDİR![/button]

Kategoriler
C# Dersleri

C# Karar Yapıları (if – else)

C# karar yapılarında en temel ögelerden birisi “IF – ELSE” karar yapısıdır. Normal şartlar da Visual Studio C#’ da yazdığınız kodları yukarıdan aşağıya tek tek satır halinde okur ve sırası ile işlem yapar. Bundan dolayı bazı özel durumlar da kodları direk sırasıyla değil de bizim isteğimiz doğrultusun da belirli bir karara ve belirli bir yapıya göre ilerlemesini isteriz. Bu gibi durumlarla karşılaştığınız da “IF/ELSE” karar yapıları sizin en büyük yardımcınız olacaktır.  

 [highlight bgcolor=”#dd3333″ txtcolor=”#ffffff”]IF Yapısı:[/highlight]

If komutu, verilen bir şartın gerçekleşmesi yada gerçekleşmemesi durumunda  belirtilen kodların çalışmasını sağlar. Belirttiğiniz şart sağlanıyorsa (örnek olarak kullanıcıdan bir şifre istediniz ve kullanıcı şifreyi doğru girdi) o halde if komutu devreye girer ve if komutlarını içerisine yazdığınız kodlar çalışır.

Örnek 1 :

File > New Project > Console Application ile yeni bir Konsol projesi oluşturalım. Sisteme kayıtlı bir kullanıcı adı belirleyelim ve bunu bir string içerisin de tutalım.. Daha sonra Console.ReadLine() metodu ile kullanıcıdan sisteme kayıtlı ismini soralım. Kullanıcı bu ismi doğru yazarsa ekrana “Tebrikler Giriş Başarılı” Yazdıralım..

Not: Aşağıda ki kodları her zaman olduğu gibi gene static void Main(string[] args)” metodunun parantezleri içerisine yazıyoruz. Ek olarak if bloğunu uzun uzun kodlarla yazmak yerine “if” yazıp iki defa üst üste “TAB” tuşuna bastığınızda gerekli olan parantezleri ve kod satırını sizin için oluşturacaktır.

            string ad  = "sahinsezgin.com";

            Console.Write("Lütfen Sisteme Kayıtlı İsminizi Giriniz:  ");

            string girilenAd = Console.ReadLine();

            if (girilenAd == ad)
            {
                Console.WriteLine("Giriş Başarılı Tebrikler!");
            }
 
            Console.ReadKey();
  

Satır 1:    Sisteme “ad” isimli bir string ifade tanımladık ve buna “sahinsezgin.com” değerini atadık.
Satır 3:   Console.Write() metodu ile kullanıcıdan ismini girmesini istedik.
Satır 5:   “girilenAd” isminde bir string ifade tanımladık ve bu string ifadeyi Console.ReadLine() metodu ile hafızaya attık.
Satır 7:   If karar yapısını oluşturduk ve if parantezleri içerisine bir koşul yazdık. Sisteme kayıtlı olan isim kullanıcının girdiği isim ile aynı ise “Tebrikler Giriş Başarılı” şeklinde bir yazı yazdır.
Satır 12: Console.ReadKey() metodu ile ekranın hemen kapanmamasını ve “Giriş Başarılı Tebrikler” yazısını görmenizi sağladık. Console.Readkey() metodunun kullanım alanı tabi ki bu değil fakat şuan ekranın kapanmaması için kullanabiliriz.

Programın Çıktısı :

programciktisi-if

 [highlight bgcolor=”#dd3333″ txtcolor=”#ffffff”]IF – ELSE Yapısı:[/highlight]

Yukarıda ki örnekte fark ettiyseniz, kullanıcı ismi doğru olarak girildiğin de bizim istediğimiz yazıyı ekrana yazdırıyor (“tebrikler”) gibi. Fakat kullanıcı ismi yanlış yazıldığında her hangi bir hata veya uyarı vermiyor program direk kapanıyor. O halde kullanıcı ismini yanlış girdiğin de “Hata” vermesini sağlamalıyız ve bu kodları da “else” bloğu içine yazmamız gerekmektedir. O halde yukarı da ki örneği birde içerisinde “else” bloğu bulunacak şekilde tanımlayalım.

Örnek 2 :

            string ad = "sahinsezgin.com";
            Console.Write("Lütfen Sisteme Kayıtlı İsminizi Giriniz:  ");
            string girilenAd = Console.ReadLine();

            if (girilenAd == ad)
            {
                Console.WriteLine("Giriş Başarılı Tebrikler!");
            }

            else
            {
                Console.WriteLine("HATALI KULLANICI ADI !!!");
            }

            Console.ReadKey();

Programın Çıktısı :

programciktisi-if-else

 

 [highlight bgcolor=”#dd3333″ txtcolor=”#ffffff”]IF – ELSE  / ELSE IF Yapısı:[/highlight]

Yukarıda if-else ile 2 farklı örnek yaptık ve bu örnekler de yalnızca tek koşul vardır. Şifre doğru veya Şifre yanlış. Fakat karar yapıları her zaman bu şekilde iki koşul arasında gerçekleşmeyebilir.. Birçok koşul içeren ifadelere yer vermek zorunda kalabilirsiniz. Aşağıda ki örnekte bunu net olarak açıklayacağım.

Örnek 3:

Ufak bir öğrenci not sistemi yapalım. Örnek olarak öğrencinin notu 0-45 arasın da ise ekrana “KALDINIZ”,  Eğer öğrenci notu 45-70 arasında ise “GEÇTİNİZ” ve son olarak öğrenci notu 70-100 arasında ise “GEÇTİNİZ VE BURS KAZANDINIZ” şeklinde bir ifade yazdırmak istiyoruz.  O halde birden çok if else yapısı kullanmamız lazım. Hatta öğrenci 0-100 arasında not girerse sistemin uyarı vermesi lazım yani “Girilen Not Geçerli Değil” şeklinde.. Aşağıda ki kodlarla hemen örneği açıklayalım.

            Console.WriteLine("Lütfen Notunuzu Giriniz:");

            int girilenNot = Convert.ToInt32(Console.ReadLine());

            if (girilenNot <= 45)
            {
                Console.WriteLine("KALDINIZ!");
            }

            else if (girilenNot >= 45 && girilenNot <= 70)
            {
                Console.WriteLine("GEÇTİNİZ");
            }

            else if (girilenNot >= 70 && girilenNot <= 100 )
            {
                Console.WriteLine("TEBRİKLER GEÇTİNİZ VE BURS KAZANDINIZ");
            }

            else
            {
                Console.WriteLine("HATALI NOT GİRDİNİZ");
            }

            Console.ReadKey();

 

Programın Çıktısı : 

screenshot_1

 

[highlight bgcolor=”#dd3333″ txtcolor=”#ffffff”]Proje Kaynak Dosyaları ve Örnekler : [/highlight]

Aşağıda ki proje dosyasını indirdikten sonra Visual Studio ortamında açabilir ve  örnekleri canlı olarak test edebilirsiniz.

[button color=”blue” link=”https://www.sahinsezgin.com/wp-content/uploads/2016/10/KararYapilari-IF-ELSE.rar” size=”bigger” target=”_blank” font=”times” font_weight=”bold” radius=”5″ icon=”brankic-icon-download2″]İNDİR[/button]

Kategoriler
C# Dersleri

Konsol Uygulaması (Yazı ve Arka Plan Renklerini Değiştirme)

Konsol uygulamaları bildiğiniz üzere insanın içini karartan siyah ve küçük bir ekranda yapılmaktadır 🙂 Fakat bir kaç kod yardımı ile konsol ekranımızı renklendirmek mümkündür. Aşağıda ki örnekleri inceleyerek sizde konsol ekranınızı renklendirebilirsiniz.

Kod Kullanımı: 

// Konsol Uygulamasının Başlığını Ayarlar
Console.Title = "www.KariyerYaz.com - Konsol Uygulamaları";

// Konsolda Yazılan Yazıların Arka Plan Rengini Ayarlar.
Console.BackgroundColor = ConsoleColor.Yellow;

// Konsolda Yazılan Yazıların Metin Rengini Ayarlar.
Console.ForegroundColor = ConsoleColor.Magenta;

// Ekrana Yazı Yazdırma Metodu.
Console.WriteLine("Renkli Rüyalar Oteli");

// Konsol Ekranının Hemen Kapanmaması için kullanılır.
Console.ReadLine();

Ekran Çıktısı:

konsol-uygulamasi-renk-degistirme

Renkleri Nasıl Belirleriz ? 

Konsol ekranına vereceğiniz renkler sistem üzerinde daha önce tanımlanmıştır. “ConsoleColor” ifadesinden sonra noktaya bastığınız anda “.” size kullanabileceğiniz renkleri sistem göstermektedir. Kolaylıkla dilediğiniz rengi seçebilirsiniz. Bunu aşağıda ki ekran görüntüsü ile daha net açıklamaya çalıştım.

konsol-uygulamasi-renk-secenekleri

 

BONUS :  (Kod yazmadan Konsol Ekranının Ayalarını Değiştirme) 

Yukarıda kod yardımı ile Konsol ekranının arka plan rengini veya yazının metin rengini ayarladık. Fakat bunun dışında hiç bir kod kullanmadan da aynı işlemleri yapabilir hatta bunlara ek olarak onlarca ayarı görsel olarak da kod kullanmadan değiştirebilirsiniz. Bunun için yapmanız gereken tek şey konsol ekranı açıkken konsol başlığına sağ tuş ile tıklamak ve “Özellikler” sekmesine basmak. Buradan konsol ekranı ile ilgili tüm detayları görebilirsiniz. (Yazı Fontu, Yazı Rengi, Yazıların Büyüklüğü ve Onlarca Detay).. Dilediğiniz gibi oynama yapabilirsiniz 🙂

[quote]Kırmızı Ok İşareti  ile gösterdiğim yer Konsol Ekranının Başlığıdır. Oraya Sağ Click Yapın ve Açılan Pencerede “Özellikler” sekmesine tıklayın..[/quote]

konsol-ayarlari1

[quote]Açılan Sekmede “Seçenekler” – ” Yazı Tipi” – “Yerleşim” – “Renkler” adında 4 farklı menü bulunmaktadır…[/quote]

konsolayarlari2

 

[quote]

Dilediğiniz ayarları değiştirdikten sonra “TAMAM” butonuna basarsanız Konsol Ekranınız kalıcı olarak ayarladığınız şekilde duracaktır. Yani her seferinde bu ayarları yapmanıza gerek yok.

 

[/quote]konsolayarlari3

Kategoriler
C# Dersleri

Konsol Uygulaması (Read – ReadLine ve ReadKey Metodları)

Daha önce Write() ve WriteLine() metodlarının kullanımını anlatmıştık. Bu yazımız da ise Read() –  ReadLine()  – ReadKey() metodlarının kullanımı detaylı olarak anlatmaya çalışacağım.

Console.ReadLine() Kullanımı : 

ReadLine() metodu kullanıcıdan aldığımız verileri kısa bir süre için bellekte tutmamıza yarar. Tutacağımız bu verilerin türü “String” tipinden olmalı aksi gerekmektedir. Aksi halde Convert işlemi yapmamız gerekir.

Örnek:

        static void Main(string[] args)
        {
            Console.Title = "sahinsezgin.com Konsol Uygulamaları";

            string isim;
            Console.WriteLine("Adınız Nedir ?");
            isim = Console.ReadLine();
            Console.WriteLine("Merhaba " + isim  +  " "  + "Hoşgeldin");


            Console.ReadKey();

        }

Ekran Çıktısı: 

console-readline-kullanimi

 

Console.ReadKey Kullanımı: 

Console.ReadKey() metodu bize klavye üzerinde basılan tuşun bilgisini verir.

Örnek (Aşağıda ki kodları yazdım ve F8 tuşuna bastım. Sonucu ekran çıktısından görebilirsiniz) :

ConsoleKeyInfo tusBilgisi;   // string veya int değil değişkenmizi "ConsoleKeyInfo"
                             // türünden tanımlamamız gerekmektedir.

Console.WriteLine("Bir tuşa basınız:");

tusBilgisi = Console.ReadKey(true);

Console.WriteLine("Bastığınız Tuş: " + tusbilgisi.Key);

Console.ReadKey();   // Ekranın Hemen Kapanmaması için

Ekran Çıktısı:

console-readkey-kullanimi

Console.Read Kullanımı:

Console.Read’in farkı ReadLine gibi string ifadeleri değil kendisine gönderilen değerin yalnızca ilk karakterini alır ve bunu ekrana o karakterin ASCII kod karşılığı ile yansıtır. Ayrıca geriye “string” değil geriye “integer” değer döndürür. Bilgisayar dilinde her bir karakterin ASCII  kod karşılığı vardır. Örneğin “a” harfinin ASCII Kod karşılığı “97” ‘dir.  Büyük “A” harfinin ASCII kod karşılığı da “65” dir. Yani büyük ve küçük harflerin ASCII kod karşılıkları farklıdır. Yalnızca harflerin değil klavye üzerinde ki her tuşun bir ASCII kod karşılığı vardır.  Örneğin  isim olarak  ŞAHİN SEZGİN bile yazsanız Read() metodu yalnızca gönderilen ifadenin ilk karakterini alır yani “Ş” harfini alır ve bunuda ekrana “Ş” olarak değil “Ş” harfinin ASCII Kod karşılığı olan değerini yazdırır.

Örnek: 

static void Main(string[] args)
{
 
string ad;   // "ad" isimli bir değişken tanımladık.
Console.WriteLine("Lütfen Adınızı Giriniz");  //Kullanıcıdan adını sorduk
ad = Console.Read().ToString(); // Girilen Adı Console.Read ile hafızaya aldık
Console.WriteLine(ad); // Ekrana girilen adın ilk karakterinin ASCII karşılığını yazdırdık

Console.ReadKey(); // Konsol Ekranının Hemen Kapanmaması için yazdık.
                
 }

Not: Console.Read metodunun sonuna “.ToString(). ifadesinin ekledik. Bunun sebebi bir üstte belirttiğim gibi Read() motodu geriye integer değer döndürür fakat bi “ad” değişkenin string olarak tanımladık. Bundan dolayı convert işlemi yapmak zorundayız.

Ekran Çıktısı : 

console-read-kullanimi

Örnekte de görüldüğü gibi bizden sorulan isme “ahmet” değerini girdik ve ekran çıktısı olarak bize “97” verdi. Bunun sebebi Read() metodu girilen metin veya girilen bilginin yalnızca ilk karakterini hafızaya alır ve bunu da ekrana ASCII kod karşılığı ile verir.

ASCII Kod Tablosu: 

ascii-kod-tablosu-jpg

Bir üstte ki örnekte ekran çıktısı “a” harfini denemiştik ve ekrana “97” yazdırmıştı. Tabloyu kolay anlayabilmeniz için üstteki örnekte “a” harfine karşılık gelen ASCII kodu kare içine aldım.

Proje Kaynak Dosyaları :

[button color=”orange2″ link=”https://www.sahinsezgin.com/wp-content/uploads/2016/11/Read-ve-ReadLine-ReadKey-Kullanimi.rar” size=”bigger” icon=”brankic-icon-download2″]Projeyi İndir![/button]

Kategoriler
C# Dersleri

C# Veri Tipleri ve Değişkenler

Veri Tipi ve Değişken Nedir?  – Giriş…

En basit tanımı ile “veri tipi”; Değişkenleri  geçici olarak saklayacağımız alanlardır. Bu veri tipleri metinsel veya rakamsal olabilir. Veri tipleri ve alacağı değerler sabit iken, değişkenler ise  kendimiz isimlendirdiği ve belirli bir veri tipine ait olan yapılardır.  Program üzerinde bir değişken tanımladığınız anda, o değişkene ait bellekte bir alan ayrılır ve geçici olarak orada saklanır. Kullanacağımız her değişkenin kesinlikle tipini belirtmemiz lazım.

Orta halli basit bir program bile yapıyor olsanız, program içerisinde onlarca belki yüzlerce farklı değişken tanımlamanız gerekebilir. Bundan dolayı veri tipleri ve değişkenleri iyi olarak anlamanız ve çok sayıda örnek yapmanızı tavsiye ederim.

C# Dilinde 2 türde değişkenler vardır. Bunlar Değer Tipli Değişkenler ve  Referans Tipli Değişkenlerdir.

Değer Tipli Değişkenler: Taşıdıkları ve atandıkları değerlere göre belleğin ‘stack’ bölgesinde yer alırlar. Adında da anlaşılacağı üzere alabildiği değer aralığı sabittir. Örnek: “int”, “long”, “float”, “double”, “decimal”, “char”, “bool”, “byte”, “short”, “struct”, “enum”

Referans Tipli Değişkenler: Alacağı değer aralığı belli olmayan ve belleğin ‘heap’ bölgesinde saklanan değişkenlerdir. Örnek: “string” ve “object”

Konuyu daha iyi anlamak için aşağıda ki örnekleri inceleyebilirsiniz.

Değişen Tanımlarken Dikkat Edilmesi Gereken Hususlar :

  • Değişken isimleri rakam veya özel karakterler ile başlamaz!
  • Değişken isimlerin de ‘boşluk’ veya ‘Türkçe’ karakter kullanılmaz!
  •  Class, namespace ve kontrol isimleri gibi program tarafından kullanılan isimler verilemez.
  •  Aynı kod bloğu içerisinde aynı isimden birden fazla değişken tanımlanamaz.
  • Değişken isimleri büyük ve küçük harfe duyarlıdır (Örnek: ‘Ad’ & ‘ad’ yazımları aynı bile olsa birbirinden farklı değişkenlerdir. )
  • Değişken ismi maksimum 255 karakterli olmalıdır.
  • Bunların dışında değişkenlere dilediğiniz ismi verebilirsiniz.

En Çok Kullanılan Veri Tipleri ve Özellikleri :

1- Integer Veri Tipi (int) : 

Integer veri tiplerini rakamsal ifadeler için kullanırız. Ondalıklı veya kesirli sayıları kabul etmez ve yalnızca tam sayı değeri girmeniz gerekmektedir.

Değer Aralığı : -2147483648  ile +2147483647 arasında değer almaktadır. Bellek üzerinde kapladığı alan “4 Bayt” dır.

Örnek Kod Kullanımı :

     /// Örnek bir Integer Tanımlayalım (2 farklı şekilde) ////

int sayi = 10;  // Bu değişkeni aşağıda ki şekilde de uzun yolla tanımlayabiliriz.


int sayi;
sayi = 10;

     /// YANLIŞ İŞLEMLER & YANLIŞ TANIMLAMA ŞEKİLLERİ ////

int = sayi;  //bu değişkenin ismi yoktur. İsim eşittir den önce yazılmalıdır. (hata verir)
int = 1;     //burada da değer var ama isim yok (hata verir)
int i = 1    //noktalı virgül yok (hata verir)
int 5 = 10;  //Veri tipi sayı ile başlayamaz (hata verir)


     /// Birden Fazla Değişkeni Aynı Anda Tanımlama ////

int rakam1 ,rakam2 ,rakam3;  

int sayi1 =10, sayi2 = 15;

 

2- String Veri Tipi :

Metinsel ifadeler için kullanılır.  Genellikle uzun metinler, cümleler, veya belirli bir açıklama yapmak istediğimizde seçeceğimiz veri tipi “string” türünden olmalıdır. String bir değişken tanımlarken dikkat etmeniz gereken hususi, tanımlanan değişken her zaman çift tırnaklar içerisin de yazılmalıdır. Integer değişkenler de buna ihtiyaç duymamıştık…   ‘String’ veri tipi referans türlü bir değişken olduğu için herhangi bir tanım veya değer aralığı yoktur. Bundan dolayı yazdığınız metinin uzunluğuna göre bellekte yer ayrılmaktadır.

Örnek Kod Kullanımı :

string isim = "Şahin Sezgin";    // Tek satırda string tanımlama.

string soyisim;                  // iki satırda string tanımlama.
soyisim = "ÖZDEMİR";


string adi, soyadi, adres;    // Birden fazla string tipini aynı satırda tanımlama.


Console.WriteLine(isim);        // Bu kod çalıştığında daha önce 'isim' değişkenin atadığınız değer 
                                   yani "Şahin Sezgin" ekrana yazdırılır.


Console.WriteLine(isim + soyisim) // Bu kod çalıştığında ekrana direk "ŞahinSezginÖZDEMİR" ifadesi yazdırılmaktadır.


Console.WriteLine(isim + " " + soyisim); // Değişkelerin arasında boşluk bırakmak için bu örneği inceleyebilirsiniz.

 

3 – Byte Veri Tipi :

Integer ile benzer bir yapıya sahiptir ve yalnızca tam sayı değerlerini almaktadır. Integer dan farklı olarak bellekte çok daha az yer kaplamaktadır. Çok büyük olmayan rakamsal veriler için tercih edilebilir. Örnek olarak;  yaş,  hava durumu, v.s v.s

Değer Aralığı : 0 ile 255 arasında ki değerleri alır. Eksi (negatif) bir sayı değeri alamaz. Bellek üzerinde kapladığı alan “1 Bayt”  dır.

Örnek Kod Kullanımı :

byte havaDurumu;

byte yas = 26;

byte dersNotu = 85

byte arabaSayisi = 500; // Hata verir çünkü byte'ın alacağı max değer 255'dir.

byte havaDurumu = -8;   // Hata verir çünkü byte'in alacağı min değer 0'dır.

4 – Long Veri Tipi :

Integer ile benzer yapıya sahiptir. Yalnızca rakamsal ve tam sayı değerlerini içinde saklayabilir. Integer’dan farklı olarak tanımlanabilecek değer aralığı çok daha büyüktür. Örneğin iş yerinde çalışanların T.C Kimlik numaralarını ‘integer’ bir veri tipinde saklayamazsınız çünkü değer aralığı buna uygun değildir.  Bu gibi durumlarda ‘long’ veri tipini rahatlıkla kullanabilirsiniz. Bbununda karşılığı olarak integer veri tipine göre bellekte çok daha fazla yer kaplamaktadır (2 katı daha fazla yer kaplar). Bundan dolayı gerek duyulmadığı sürece ‘long’ veri tipini kullanmamalısınız.

Değer Aralığı :  (-)9.223.372.036.854.775.808    ile (+)9.223.372.036.854.775.808   arasında ki değerleri almaktadır. Bellekte kapladığı alan 8 Byte’dır.

Örnek Kod Kullanımı :

long tcKimlik;
tcKimlik = 54878569854;


long tcNo = "15454154151";  // Hata verir çünkü çift tırnak yalnızca string ifadeler
                            // için kullanılmaktadır. Yukarıda ki gibi olmalıdır.

5-  Char Veri Tipi: 

Character kelimenin kısaltılmış halidir. Türkçe anlamı ise ‘Karakter’ dir. İsminden de anlaşıldığı üzere içerisine yalnızca tek bir değer alır. Bu değer harf veya rakam olabilir.  Bunun dışında özel karakter veya tüm dillerin alfabesinden herhangi bir harf alabilir. Örnek olarak Char veri tipine Japonca, Çince, ibranice veya Türkçe, kısaca her alfabeden dilediğiniz harfi veya karakteri atayabilirsiniz ve biz C# dilinde buna “Unicode” adını vermekteyiz. Not: Char veri tiplerine atanacak değerler her daim ‘tek tırnaklar’ içerisine yazılmalıdır.

Değer Aralığı : Tüm unicode karakterleri barındılabilir.  Bellekte kapladığı alan 2 Byte’dır.

Örnek Kod Kullanımı :

char karakter = 'a';

char test = "a"; // Hata verir çünkü yalnızca tek tırnaklar içerisine yazılabilir.

char sayi;
sayi = '1';


char rakam = '12';   // Hata verir çünkü içerisine yalnızca tek bir rakam alabilir. 
                    // 0-1-2-3-4-5-6-7-8-9 .. bunun dışında değer alamaz.

 
char deneme = 'AB' // Hata verir çünkü içerisine yalnızca tek bir harf alabilir.

6-  Double,  Float ve Decimal Veri Tipleri : 

Sayısal veri tiplerini üst kısımda sizlere anlattım (int, byte, long v.s) fakat dikkat ettiyseniz bu sayısal veri tiplerinin hiç birisi ondalıklı yani kesirli sayıları içerisinde barındıramaz! Örnek olarak KDV hesaplayan bir program yapmak istediğiniz de kdv değeri olan 0,18 değerini bir ‘int’ veya ‘long’ değerine atayamazsınız program hata verecektir. Bu gibi durumlar da Double, Float ve Decimal gibi veri tiplerini kullanarak işlemimize devam edebiliriz. Peki bu üç veri tipinin birbirinden farkı nedir ? Hangi durumlarda hangisi tercih edilmelidir kısaca açıklayalım.

Double: Özel veya aksi bir durum belirtmediğiniz sürece, C# üzerinde tanımladığınız her kesirli sayı birer ‘Double’ veri tipi olarak algılanır. ‘Double’ olarak tanımladığınız veri tiplerinin sonuna “D” veya küçük “d” koyabilirsiniz. Fakat bu zorunlu bir kural değildir! Veri tipinin ‘double’ olduğunu belirtmek için bu yol kullanılır.  Bellekte 8 Bayt yer kaplar ve alacağı maksimum basamak sayısı 16‘dır.

Float: Kullanım ve yapı bakımından ‘double’ veri tipi ile aynı özellikleri sahiptir. Aralarında ki tek fark ise ‘float’ 7 haneli sayılara kadar izin verir ve bellekte kapladığı alan ‘double’ veri tipinin yarısı kadar yani 4 Bayt‘dır.  Float olarak tanımlanan bir veri tipinin sonuna “F” veya “f” harfini koymanız gerekmektedir.

Decimal: Ondalıklı veri tiplerinin en büyüğü ve bellekte en çok yer kaplayandır. Mantığında double ve float gibi kesirli sayıları barındırmak için kullanılır fakat asıl kullanım alanları finans sektörü ve parasal değer hesaplamalarıdır. Bunun sebebi ise ‘decimal’ veri tipi kesin sonuçlar elde etmek istediğiniz kullanılır. Float ve Double veri tiplerinde ondalıklı sayılar ile işlem yaparken yazdığının veri tipinin son hanesi “5” den küçükse bunu ekrana yazdırmaz ama decimal’de bu durum söz konusu değildir. Veriyi net ve tam olarak hesaplar herhangi bir yuvarlama işlemi yapmaz. Bu nedenle parasal hesaplamalar yaparken her daim decimal kullanılır! Bellekte 16 Bayt yer kaplar ve 29 haneye kadar destekler.

Double, Float, Decimal Arasında ki Temel Farklar:  Üç veri tipinin arasında ki en temel fark double ve float ile %100 kesin sonuçlar alamazsınız ondalıklı sayının son hanesine göre yuvarlama işlemi yapabilir fakat Decimal her zaman kesin ve tam sonuçları size gösterir. Bunun yanı sıra 3 veri tipinin de bellekte kapladığı alanlar birbirinden çok farklı ve aynı şekilde alabileceği maksimum basamak sayısı da (kaç haneli) farklıdır. Yapacağınız ve tutacağınız veri tipine göre iyi bir seçim yapmanız gerekmektedir. Örneğin doğa olaylarını hesaplarken kesin sonuçlara ihtiyacınız yoktur ve zaten doğa olaylarında (deprem tahmini, hava durumu vs) kesin sonuc alamazsınız bundan dolayı Float veya Double kullanabilirsiniz. Ama Finansal veya kesin sonuca dayalı bir işlem olacaksa kesinlikle seçmeniz gereken veri tipi Decimal olmalıdır.

Örnek Kod Kullanımı :

     // Double Veri Tipi Örnekleri //

double KDV = 0.18D; // Doğru bir kullanım, sonuna "D" eklenerek kullanılmıştır.

double KDV = 0.18;  // Doğru bir kullanım, çünkü double veri tipi,
                    // sonuna hiç bir ifade belirtmeden de yazılabilir.
        
              

     // Float Veri Tipi Örnekleri //

float test= 25.48F; // floatta sonunda F olur.




     // Decimal Veri Tipi Örnekleri //

decimal d = 0.145M;   // decimal veri tipi tanımlanırken M kullanılır.

decimal d1 = 1;      // Doğru bir kullanım çünkü,
                     // normal bir sayısal değer atanırken M harfi kullanılmaz,
                     // ama ondalıklı atama olurken M kullanılır.

           
          

 

7-  Diğer Veri Tipleri ve Aldığı Değerler : 

Yukarıda sizlere 6 maddede en çok kullanılan veri tiplerini açıkladım ve kullanıldıkları alanları size anlatmaya çalıştım. Bunun yanında detaylı olarak açıklamadığım fakat yeri geldiğin de (çok fazla olmasa da) kullanabileceğiniz diğer  veri tipleri ve bu veri tiplerinin alacağı değerler aşağıda ki tabloda yer almaktadır.

Rakamsal Veri Tipleri: 

Tür Boyut Kapasite Örnek
byte 1 bayt 0, …, 255 (tam sayı) byte a=6;
sbyte 1 bayt -128, …, 127 (tam sayı) sbyte a=5;
short 2 bayt -32768, …, 32767 (tam sayı) short a=5;
ushort 2 bayt 0, …, 65535 (tam sayı) ushort a=5;
int 4 bayt -2147483648, …, 2147483647 (tam sayı) int a=5;
uint 4 bayt 0, …, 4294967295 (tam sayı) uint a=5;
long 8 bayt -9223372036854775808, …, 9223372036854775807 (tam sayı) long a=5;
ulong 8 bayt 0, …, 18446744073709551615 (tam sayı) ulong a=5;
float 4 bayt ±1.5*10-45, …, ±3.4*1038 (reel sayı) float a=5F; veya float a=5f;
double 8 bayt ±5.0*10-324, …, ±1.7*10308 (reel sayı) double a=5; veya double a=5d; veya double a=5D;
decimal 16 bayt ±1.5*10-28, …, ±7.9*1028 (reel sayı) decimal a=5M; veya decimal a=5m;

Metinsel Veri Tipleri: 

Tür Boyut Açıklama Örnek
char 2 bayt Tek bir karakteri tutar. char harf ='h';
string Sınırsız Metin tutar. string site="www.kariyeryaz.com";

Tarih ve Zaman Tutabilen Veri Tipleri:

Tür Boyut Açıklama Örnek
DateTime 8 byte Tarih ve Zaman Tutar Datetime zaman = Datetime.now;
Kategoriler
C# Dersleri

Konsol Uygulaması (Write ve WriteLine Metodları)

C# Konsol uygulamalarının ilk ve en basit konusu olan Write() ve WriteLine() metodları ekrana en basit haliyle yazı yazdırmaya yarar. Aralarında ki tek fark imleç farkıdır. Aşağı da ki örnekleri ve ekran çıktılarını inceleyerek daha net anlayabilirsiniz.

 

Console.Write() Metod Kullanımı:

Kendisine verilen değeri ekrana aynı satırdan devam edecek şekilde ekrana yazdırır.

Örnek Kod: 

 static void Main(string[] args)
        {
            
            Console.Write("www.sahinsezgin.com");

            Console.ReadLine();

        }

Ekran Çıktısı : 

Console.Write.Metodu

Örnekte de görüldüğü üzere Console.Write metodunu kullandığınız “Klavye İmleci” satırın hemen sonun da yer almaktadır.

Console.WriteLİne() Metod Kullanımı:

Kendisine verilen değeri ekrana bir alt satırdan devam edecek şekilde ekrana yazdırır.

Örnek Kod : 

        static void Main(string[] args)

        {
            Console.WriteLine("www.sahinsezgin.com");

            Console.ReadLine();

        }

Ekran Çıktısı : 

writeline-metodu

Console.WriteLine metodunu kullanırsanız, imleç yazının bittiği yerde değil direk olarak bir alt satırda yer almaktadır.

Proje Dosyaları: 

[button color=’orange’ size=’bigger’ icon=”brankic-icon-download2″ link=’https://www.sahinsezgin.com/wp-content/uploads/2016/11/Write-WriteLine-Kullanımı.rar’ font=’arial’ font_weight=’bold’]İndir[/button]

Kategoriler
C# Dersleri

Microsoft .NET Nedir ?

  [quote font=”arial”] Detaylı bir başlangıç yapmadan önce konuyu özetlemek gerekirse, “.Net” Microsoft tarafından geliştirilmiş bir uygulama geliştirme platformudur.[/quote]

.NET Nedir ?

Öncelikle bilinmesi gereken husus .NET bir programlama dili değil aksine birden çok programlama dilini destekleyen (C++, C#, Python, Visual Basic ve benzeri) geniş ve mevcut en profesyonel uygulama geliştirme ortamıdır.  Eski arayüzler de geliştirilen yazılım web, windows, mobil vb. herhangi bir platform için yazılır ve diğer platformlarda çalıştırılamaz durumdaydı. .Net ile bu sorunda ortadan kaldırılmıştır.

.Net ile uygulama geliştirmeye başladığınız da kullanacağınız kod yazma araçlarından Microsoft Visual Studio sizin bu yolda ki en iyi yoldaşınız olacaktır. Farklı alternatifler elbette mevcut fakat programlama dillerinin verdiği destek, Visual Studio’nun bize sunduğu kolaylık ve imkanlar ciddi anlamda iş yükünüzü düşürecek ve çok daha profesyonel bir ortamda kesin sonuçlar almanıza yardımcı olacaktır.

.NET ile Neler Yapabilirim  &   .NET Kullanım Alanları

.Net      .NET platformuna ve ilgi alanınız olan yazılım diline hakimseniz bu iki gücü birleştirdiğiniz de harikalar yaratabilirsiniz 🙂 Öncelikle bu platformu kullanabilmek ve proje geliştirmek için “Windows” işletim sistemli bir bilgisayar üzerinde çalışmanız gerekmektedir. .Net ile masaüstü uygulamaları, mobil uygulamalar ve web uygulamaları geliştirebilirsiniz. Kısacası ihtiyacınız olan tüm gereksinimi .NET tarafından karşılayabilirsiniz. Bu platform, işletim sistemi ve donanımdan daha üst seviyede taşınabilir olarak tasarlanmıştır. Buda yazılım geliştirmek isteyen kişiler adına büyük bir avantajdır..

 

.NET üzerinde uygulama geliştirmek istiyorsanız Visual Studio Programını kullanmanız gerekmektedir.  .Net platformunda kod ilk önce Microsoft Intermediate Language (Microsoft Ara Dili) olarak isimlendirilmiş dosya haline dönüştürülür bu dosya içerisinde derlenen kodların Microsoft’un standart haline getirdiği bir assembly dili haline dönüştürür. Bu ara dil de saklanan dosyalar çalıştırılmak istendiğinde ise CLR adı verilen sistem MSIL kodlarını çalıştırır.