{"id":169,"date":"2009-03-18T15:05:00","date_gmt":"1970-01-01T00:00:00","guid":{"rendered":"http:\/\/www.yazilimmutfagi.com\/?p=169"},"modified":"2009-03-18T15:05:00","modified_gmt":"1970-01-01T00:00:00","slug":"yazilim-mutfagi-dersleri-csharp-ders-2-degisken-tipleri-degisken-tanimlama-ve-operatorler","status":"publish","type":"post","link":"https:\/\/www.yazilimmutfagi.com\/index.php\/2009\/03\/18\/yazilim-mutfagi-dersleri-csharp-ders-2-degisken-tipleri-degisken-tanimlama-ve-operatorler\/","title":{"rendered":"Yazilim Mutfagi Dersleri (C#) Ders 2 &#8211; Degisken Tipleri, Degisken Tanimlama ve Operat\u00f6rler"},"content":{"rendered":"\n\n<h1>C# Hakkinda Temel Bilgiler<\/h1>\n<p>\nBu dersimizde C# dili hakkinda temel bilgiler \u00f6grenecegiz. Biraz a\u00e7arsak bu dersimizde veri tipleri, degiskenler ve operat\u00f6rleri nasil kullanacagimizla ilgili bilgiler verecegiz.\n<\/p>\n<h2>\nTemel Veri Tipleri ve CTS(Common Type System) Karsiliklari\n<\/h2>\n<p>C# da iki \u00e7esit veri tipi vardir:<\/p>\n<ul>\n<li>Deger Tipleri (Value type)<\/li>\n<li>Referans Tipleri(Reference Type)<\/li>\n<\/ul>\n\n<p>Degiskenler bellekte bulunan verilerdir. Bir degiskeni kullandigimiz zaman o degiskenin bellekte bulundu yerdeki bilgiyi kullaniriz. Deger tipleri veriyi direk olarak bellek b\u00f6lgesinden alirken referans tipleri baska bir nesneye referans g\u00f6sterirler. Yani referans tipleri i\u00e7inde veri degil adres bilgisi tutarlar. Veri tipleri stack dedigimiz bellek b\u00f6lgesinde tutulurlar, referans tipleri ise heap bellek b\u00f6lgesinde saklanirlar. int, double, float gibi veri tipleri deger tiplerine \u00f6rnek g\u00f6sterilebilir. Herhangi bir sinif t\u00fcr\u00fc ise referans tipine \u00f6rnek g\u00f6sterilebilir. Deger tipleri birbirine esitlenirken degiskenin barindirdigi deger bir diger degiskene kopyalanir. B\u00f6ylece iki farkli bagimsiz degisken olusur. Referans tipleri ise esitleme sirasinda degiskenlerin tasidiklari veri degil heap b\u00f6lgesinde isaret ettikleri adres kopyalanir. B\u00f6ylece eger iki referans degiskeni birbirine esitledi isek ve daha sonra bunlardan birinde bulunan veriyi degistirdi ise otomatik olarak diger referans degiskeninin degeri de degisir. \u00c7\u00fcnk\u00fc adresde bulunan veri degisince bu adresi isaret eden iki degiskende yeni veri bilgisine ulasir.<\/p>\n\n <p>\n Bir \u00f6nceki dersimizde Common Type System hakkinda bilgi vermistik. C# da tanimlanan veri tipleri ve bunlarin CTS deki karsiliklarini tablo halinde asagida bulabilirsiniz. C# da toplam 15 veri tipi vardir bunlardan 13 \u00fc deger tipindedir, 2 si ise referans tipindedir.\n<\/p>\n\n <a href='www.yazilimmutfagi.com'>.<\/a>\n\n <h2>Deger Tipleri:<\/h2>\n\n\n<table  class=\"reference\" cellspacing=\"0\" cellpadding=\"0\" border=\"1\" width=\"100%\">\n            <tr >\n                <th width=\"200\">\n                    C# Adi<\/th>\n                <th width=\"200\">\n                    CTS Karsiligi<\/th>\n                <th width=\"200\">\n                    A\u00e7iklama<\/th>\n                <th width=\"350\">\n                    Max ve Min aralik yada degeri<\/th>\n            <\/tr>\n            <tr >\n                <td >\n                    sbyte<\/td>\n                <td>\n                    System.Byte<\/td>\n                <td>\n                    8 bit isaretli tamsayi<\/td>\n                <td>\n                    -128 : 127<\/td>\n            <\/tr>\n            <tr>\n                <td >\n                    short<\/td>\n                <td>\n                    System.Int16<\/td>\n                <td>\n                    16 bit isaretli tamsayi<\/td>\n                <td>\n                    -32.768 : 32.767<\/td>\n            <\/tr>\n            <tr >\n                <td >\n                    int<\/td>\n                <td>\n                    System.Int32<\/td>\n                <td>\n                    32 bit isaretli tamsayi<\/td>\n                <td>\n                    -2.147.483.648 : 2.147.483.647<\/td>\n            <\/tr>\n            <tr >\n                <td >\n                    long<\/td>\n                <td>\n                    System.Int64<\/td>\n                <td>\n                    64 bit isaretli tamsayi<\/td>\n                <td>\n                    -9.223.372.036.854.775.808 : -9.223.372.036.854.775.807<\/td>\n            <\/tr>\n            <tr >\n                <td >\n                    byte<\/td>\n                <td>\n                    System.Byte<\/td>\n                <td>\n                    8 bit isaretsiz tamsayi<\/td>\n                <td >\n                    0,177083333<\/td>\n            <\/tr>\n            <tr >\n                <td >\n                    ushort<\/td>\n                <td>\n                    System.UInt16<\/td>\n                <td>\n                    16 bit isaretsiz tamsayi<\/td>\n                <td>\n                    0 : 65.535<\/td>\n            <\/tr>\n            <tr >\n                <td >\n                    uint<\/td>\n                <td>\n                    System.UInt32<\/td>\n                <td>\n                    32 bit isaretsiz tamsayi<\/td>\n                <td>\n                    0 : 4.294.967.295<\/td>\n            <\/tr>\n            <tr >\n                <td >\n                    ulong<\/td>\n                <td>\n                    System.UInt64<\/td>\n                <td>\n                    64 bit isaretsiz tamsayi<\/td>\n                <td>\n                    0 : 18.446.744.073.709.551.615<\/td>\n            <\/tr>\n            <tr >\n                <td >\n                    float<\/td>\n                <td>\n                    System.Single<\/td>\n                <td>\n                    32 bit tek kayan sayi<\/td>\n                <td>\n                    +yada &#8211; 1,5*10<font class=\"font6\"><sup>-45<\/sup><\/font><font class=\"font5\"> : + \n                    ya da &#8211; 3,4*10<\/font><font class=\"font6\"><sup>38<\/sup><\/font><\/td>\n            <\/tr>\n            <tr >\n                <td >\n                    double<\/td>\n                <td>\n                    Sytem.Double<\/td>\n                <td>\n                    64 bit \u00e7ift kayan sayi<\/td>\n                <td>\n                    +yada &#8211; 5*10<font class=\"font6\"><sup>-324<\/sup><\/font><font class=\"font5\"> : + \n                    ya da &#8211; 1,7*10<\/font><font class=\"font6\"><sup>308<\/sup><\/font><\/td>\n            <\/tr>\n            <tr >\n                <td >\n                    decimal<\/td>\n                <td>\n                    System.Decimal<\/td>\n                <td>\n                    128 bit ondalikli sayi<\/td>\n                <td>\n                    +yada &#8211; 1,5*10<font class=\"font6\"><sup>-28<\/sup><\/font><font class=\"font5\"> : + \n                    ya da &#8211; 7,9*10<\/font><font class=\"font6\"><sup>28<\/sup><\/font><\/td>\n            <\/tr>\n            <tr >\n                <td >\n                    bool<\/td>\n                <td>\n                    System.Boolean<\/td>\n                <td>\n                <\/td>\n                <td>\n                    true ya da false<\/td>\n            <\/tr>\n            <tr >\n                <td >\n                    char<\/td>\n                <td>\n                    System.Char<\/td>\n                <td>\n                    Karakterleri temsil eder<\/td>\n                <td>\n                    16 Unicode karakterleri<\/td>\n            <\/tr>\n        <\/table>\n       \n       <h2>Referans Tipleri:<\/h2> \n       <table  class=\"reference\" cellspacing=\"0\" cellpadding=\"0\" border=\"1\" width=\"100%\">\n         \n        <tr height=\"20\">\n            <th height=\"20\" width=\"46\">\n                C# Adi<\/th>\n            <th width=\"98\">\n                CTS Karsiligi<\/th>\n            <th width=\"267\">\n                A\u00e7iklama<\/th>\n        <\/tr>\n        <tr height=\"20\">\n            <td height=\"20\">\n                object<\/td>\n            <td>\n                System.Object<\/td>\n            <td>\n                B\u00fct\u00fcn veri t\u00fcrlerinin t\u00fcredigi k\u00f6k eleman<\/td>\n        <\/tr>\n        <tr height=\"20\">\n            <td height=\"20\">\n                string<\/td>\n            <td>\n                System.String<\/td>\n            <td>\n                Unicode karakterlerinden olusan string<\/td>\n        <\/tr>\n    <\/table>\n    \n    \n    <h2>Degiskenler:<\/h2>\n <p>\n Bir program &ccedil;alistirirken t&uuml;m veriler ge&ccedil;ici olarak hafizada tutulur. Degiskenler bu verilerin isimlendirilmesi islemidir. C# da degiskenler asagidaki yapida tanimlanirlar.\n <\/p>\n <pre class=\"brush: csharp\">\n &lt;veri tipi&gt;&lt;degisken adi&gt;;\n <\/pre>\n <h3>&Ouml;rnegin;<\/h3>\n  <pre class=\"brush: csharp\">\n int i;\n <\/pre>\n <p>Yukaridaki ifade bir integer veri tipini saklamak i&ccedil;in programin diger asamalarinda i ismi ile ifade edilecek hafizada 4 bytelik bir alan a&ccedil;ar. Bir degiskene tanimlarken deger atayabilirsiniz, ayrica bir veri tipi altinda birden fazla isimle farkli degiskenler tanimlayabilirsiniz.<\/p>\n \n \n <pre class=\"brush: csharp\">\nbool dogruMu = false;\ndouble yuzde = 98.32, ortalama = 35.32;\nchar karakter = 'A';\n<\/pre>\n\n<p>Diger modern programlama dilleri gibi C# dada degiskenleri kullanmadan &ouml;nce tanimlamak zorundasiniz.<span style=\"\">&nbsp; <\/span>Ayrica eger bir yerel degisken (Bir method i&ccedil;inde tanimlanan degiskenler) tanimliyorsaniz bu degiskeni kullanmadan &ouml;nce bir deger atamasi yapmak zorundasiniz.\n<\/p>\n <pre class=\"brush: csharp\">\nstatic void Main(string[] args)\n{\n      int kilo;\n      \/\/kilo = 78;\n      Console.WriteLine(kilo);\n}\n\n <\/pre>\n\n<p>\nYukaridaki kod par&ccedil;acigi kilo degiskenine deger atamadiginiz i&ccedil;in hata verecektir &ccedil;&uuml;nk&uuml; kilo degiskeni yerel bir degiskendir. Eger <span style=\"font-size: 10pt; color: green; line-height: 115%; font-family: &quot;Courier New&quot;;\">\/\/kilo = 78;<\/span>  a&ccedil;iklama satirindaki  <span style=\"font-size: 10pt; color: green; line-height: 115%; font-family: &quot;Courier New&quot;;\">\/\/ <\/span> isaretlerini siler ve bu satiri koda dahil ederseniz hatanin ortadan kalktigini g&ouml;r&uuml;rs&uuml;n&uuml;z. Buradan da anlasilacagi gibi C# yerel degiskenlere ilk atama islemini otomatik yapmak global degiskenler de ise ilk deger atamasi degisken tipine g&ouml;re otomatik olarak yapilir. &Ouml;rnegin integer bir tip i&ccedil;in 0 gibi.\n\n<\/p>\n<a href='www.yazilimmutfagi.com'>.<\/a>\n\n<h2>Sabit Degiskenler:<\/h2>\n<p>\n\nSabit degiskenler i&ccedil;inde buluna veri degisken &ouml;mr&uuml; tamamlanana kadar degismez. Bir sabit tanimlamak i&ccedil;in <strong>const<\/strong> anahtar kelimesini kullaniriz. Ilk tanimlandiklari sirada ilk deger atamasi yapmak zorundayiz, uygulamamizin herhangi bir kisminda sabit degiskenin i&ccedil;erigini degistiremeyiz.\n\n<\/p>\n <pre class=\"brush: csharp\">\nconst double PI = 3.14;\nconst double PI;\n<\/pre>\n<p>\nYukaridaki tanimlamalardan birincisi dogru ikincisi ise yanlis bir tanimlamadir. Ilk atamalari yapilmak zorundadir.\n\n\n<\/p>\n\n<p>Sabitler genellikle b&uuml;y&uuml;k harflerle tanimlanirlar. Bu bir zorunluluk degildir.<\/p>\n\n<h2>Degiskenler ve Metotlar i&ccedil;in Isimlendirme Konvansiyonlari<\/h2>\n<p>Microsoft degisken isimlendirmesi i&ccedil;in <strong>Camel Notasyonu<\/strong> methotlar i&ccedil;in ise <strong>Pascal Notasyonunu <\/strong>tavsiye ediyor.<\/p>\n<p>Camel notasyonunda isim k&uuml;&ccedil;&uuml;k harfle baslar, eger degisken isminde birden fazla kelime ge&ccedil;iyor ise isimdeki diger kelimeler b&uuml;y&uuml;k harfle baslar.<\/p>\n\n<h3>Camel Notasyonu:<\/h3>\n <pre class=\"brush: csharp\">\nmaas;\nmaasMiktari;\nmassMiktariAciklama;\n <\/pre>\n \n <p>Pascal Notasyonunda kelime b&uuml;y&uuml;k harfle baslar. Camel Notasyonunda oldugu gibi diger kelimelerde b&uuml;y&uuml;k harfle baslar.<\/p>\n <h3>Pascal Notasyonu:<\/h3>\n \n   <pre class=\"brush: csharp\">\nMaas();\nMaasHesapla();\n <\/pre>\n \n <p>Bu notasyonlarin kullanimi mecburi degildir. Fakat s&uuml;rekli olarak bu t&uuml;r bir notasyona uyarak kodlarinizi yazarsaniz, kodlariniz daha anlasilir bir hale girer.<\/p>\n \n <h2>C# da Operat&ouml;rler<\/h2>\n <h3>Aritmetik Operat&ouml;rler<\/h3>\n \n <table class=\"reference\" cellspacing=\"0\" cellpadding=\"0\" border=\"1\" width=\"100%\">\n        <tr>\n            <th  width=\"64\">\n                Operat\u00f6r\n            <\/th>\n            <th width=\"64\">\n                A\u00e7iklama\n            <\/th>\n        <\/tr>\n        <tr>\n            <td >\n                +\n            <\/td>\n            <td>\n                Ekleme\n            <\/td>\n        <\/tr>\n        <tr>\n            <td >\n                &#8211;\n            <\/td>\n            <td>\n                \u00c7ikarma\n            <\/td>\n        <\/tr>\n        <tr>\n            <td >\n                *\n            <\/td>\n            <td>\n                \u00c7arpma\n            <\/td>\n        <\/tr>\n        <tr>\n            <td >\n                \/\n            <\/td>\n            <td>\n                B\u00f6lme\n            <\/td>\n        <\/tr>\n        <tr>\n            <td >\n                %\n            <\/td>\n            <td>\n                Kalan veya mod\u00fcl\n            <\/td>\n        <\/tr>\n        <tr>\n            <td >\n                ++\n            <\/td>\n            <td>\n                Birer Birer Arttirma\n            <\/td>\n        <\/tr>\n        <tr>\n            <td >\n                &#8212;\n            <\/td>\n            <td>\n                Birer Birer Eksiltme\n            <\/td>\n        <\/tr>\n    <\/table>\n    \n <p>Yukaridaki tablodaki operat&ouml;rlerin kullanimi ile ilgili &ouml;rnek kod asagidadir. Ayrica kodu <a href=\"..\/Makale\/Dersler\/CSharp\/Ders2\/AritmetikOperatorler.rar\">buradan<\/a> indirerek kendiniz deneyebilirsiniz.<\/p>\n \n <pre class=\"brush: csharp\">\npublic static void Main()\n{\n\n    int toplam = 0, fark = 0, carpim = 0, kalan = 0;\n    float bolum = 0;\n    int sayi1 = 0, sayi2 = 0;\n        \n    Console.WriteLine(\"Sayi Biri Giriniz : \");\n    sayi1 = Convert.ToInt32(Console.ReadLine());\n\n    Console.WriteLine(\"Sayi Ikiyi Giriniz : \");\n    sayi2 = Convert.ToInt32(Console.ReadLine());\n\n    toplam = sayi1 + sayi2;\n    fark = sayi1 - sayi2;\n    carpim = sayi1 * sayi2;\n    kalan = sayi1 % sayi2;\n    bolum = sayi1 \/ sayi2;\n        \n    Console.WriteLine(\"Girilen Sayilar: Sayi 1 = {0}, Sayi 2 = {1}\", \n    \t\tsayi1, sayi2);\n    Console.WriteLine(\"Sayilarin Toplami = {0}\", toplam);\n    Console.WriteLine(\"Sayilarin Farki (sayi1 - sayi2) = {0}\", fark);\n    Console.WriteLine(\"Sayilarin \u00c7arpimi = {0}\", carpim);\n    Console.WriteLine(\"Sayilarin kalan (sayi1 in sayi2 ye b\u00f6l\u00fcmgnden kalan)= {0}\"\n    \t\t, kalan);\n    Console.WriteLine(\"Sayilarin B\u00f6l\u00fcm\u00fcnden (sayi1 \/ sayi2) B\u00f6l\u00fcm = {0}\", bolum);\n\n    sayi1++;\n    sayi2--;\n    Console.WriteLine(\"Sayi 1 in bir fazlasi = {0}\", sayi1);\n    Console.WriteLine(\"Sayi 2 in bir eksigi = {0}\", sayi2);\n}\n <\/pre>\n \n <p>Yukaridaki kodu inceleyecek olursaniz.   <strong>Console.WriteLine(&quot;A&ccedil;iklama Metni {0}&quot; , sayi1);<\/strong> gibi bir yapi g&ouml;r&uuml;rs&uuml;n&uuml;z. String ifadelerde stringIfade1 + stringIfade2 seklinde birlestirme yapmak yerine bu formatta stringleri birlestirebilirsiniz. {0}<span style=\"\">&nbsp; <\/span>seklindeki ifade virg&uuml;lden sonra yazilan ilk degiskenin degerini buraya yaz demek oluyor. Eger ikinci bir degisken varsa {1} seklinde yazarak onunda degerini baska bir kisma yerlestirebiliriz. Dikkat etmeniz gereken {} ifadesinin i&ccedil;indeki sayilar sirasi ile gitmeli. Yani 0, 1, 2,..\n<\/p>\n\n<pre class=\"brush: csharp\">\n\tsayi1++ ifadesi\n<\/pre>\n<p>ile<\/p>\n  <pre class=\"brush: csharp\">\n\tsayi1 = sayi1 + 1;\n <\/pre>\n <p>ayni anlama gelmektedir. Ayrica bir sayiya herhangi bir sayi eklemek istiyorsak &ouml;rnegin sayi1 e 5 ekleyelim.<\/p>\n \n <pre class=\"brush: csharp\">\n\tsayi1 = sayi1 +5\n <\/pre>\n <p> yazmak yerine;<\/p>\n \n   <pre class=\"brush: csharp\">\n\tsayi += 5;\n <\/pre>\n<p>daha kisa ve dogrudur.<\/p>\n \n <h3>&Ouml;n Ek ve Arka Ek Olarak Kullanma<\/h3>\n <p>++ ve &ndash; operat&ouml;rleri en ve arka ek olarak kullanilabilir. &Ouml;rneklerle anlatacak olursak;<\/p>\n   <pre class=\"brush: csharp\">\nsayi2 = 3;\nsayi1 = ++sayi2;\/\/sayi1 = 4, sayi2= 4 olur.\nsayi1 = --sayi2;\/\/sayi1 = 2, sayi2= 2 olur.\n  <\/pre>\n  \n <p>&Ouml;rnekte g&ouml;r&uuml;ld&uuml;g&uuml; gibi eger operator &ouml;n ek olarak kullanilirsa derleyici &ouml;nce operat&ouml;r&uuml;n g&ouml;revini yapar daha sonra ise atama islemini ger&ccedil;eklestirir. B&ouml;ylece sayi1 = ++sayi2 ifadesinde sayi2 &ouml;nce bir arttirilir daha sonra sayi1&rsquo;e sayi2 nin degeri atanir.<\/p>\n  \n    <pre class=\"brush: csharp\">\nsayi2 = 3;\nsayi1 = sayi2++; \/\/sayi1 = 3, sayi2= 4 olur.\nsayi1 = sayi2--; \/\/sayi1 = 3, sayi2= 2 olur.\n <\/pre>\n \n <p>Operat&ouml;r arka ek olarak kullanildiginda ise &ouml;nce atama islemi yapilar daha sonra operat&ouml;r&uuml;n g&ouml;revi yerine getirilir. sayi1 = sayi2++ isleminde &ouml;nce sayi2 nin degeri sayi1&rsquo;e atanir, daha sonra sayi2 bir arttirilir.<\/p>\n \n <h3>Atama Operat&ouml;rleri<\/h3>\n \n <p>Atama Operat&ouml;rleri degiskenlere deger atamak i&ccedil;in kullanilirlar.<\/p>\n<table class=\"reference\" cellspacing=\"0\" cellpadding=\"0\" border=\"1\" width=\"100%\">\n        <tr>\n            <th width=\"64\">\n                Operat\u00f6r\n            <\/th>\n            <th width=\"64\">\n                A\u00e7iklama\n            <\/th>\n        <\/tr>\n        <tr>\n            <td>\n                =\n            <\/td>\n            <td>\n                Basit esitleme\n            <\/td>\n        <\/tr>\n        <tr>\n            <td>\n                +=\n            <\/td>\n            <td>\n                Sagdaki Sayi ile topla sonra toplami esitle\n            <\/td>\n        <\/tr>\n        <tr>\n            <td>\n                -=\n            <\/td>\n            <td>\n                Sagdaki Sayi yi \u00e7ikar sonra sonucu esitle\n            <\/td>\n        <\/tr>\n        <tr>\n            <td>\n                *=\n            <\/td>\n            <td>\n                Sagdaki Sayi ile \u00e7arp sonra toplami esitle\n            <\/td>\n        <\/tr>\n        <tr>\n            <td>\n                \/=\n            <\/td>\n            <td>\n                Sagdaki Sayi ile b\u00f6l sonra b\u00f6l\u00fcm\u00fc esitle\n            <\/td>\n        <\/tr>\n        <tr>\n            <td>\n                %=\n            <\/td>\n            <td>\n                Sagdaki Sayi ile b\u00f6l\u00fcm\u00fcnden kalani bul sonra kalani esitle\n            <\/td>\n        <\/tr>\n    <\/table>\n    \n \n <h3>Iliskisel(Karsilastirma) Operat&ouml;rleri<\/h3>\n <p>Iliskisel Operat&ouml;rler genelde kosul ifadelerinde karsilastirma i&ccedil;in kullanilirlar. C#da kullanilan iliskisel operat&ouml;rler asagidakilerdir.<\/p>\n \n \n    <table class=\"reference\" cellspacing=\"0\" cellpadding=\"0\" border=\"1\" width=\"100%\">\n        <tr>\n            <td width=\"64\">\n                Operat\u00f6r\n            <\/td>\n            <td width=\"64\">\n                A\u00e7iklama\n            <\/td>\n        <\/tr>\n        <tr>\n            <td>\n                ==\n            <\/td>\n            <td>\n                Esittir\n            <\/td>\n        <\/tr>\n        <tr>\n            <td>\n                !=\n            <\/td>\n            <td>\n                Esit Degildir\n            <\/td>\n        <\/tr>\n        <tr>\n            <td>\n                &gt;&nbsp;\n            <\/td>\n            <td>\n                B\u00fcy\u00fckt\u00fcr\n            <\/td>\n        <\/tr>\n        <tr>\n            <td>\n                &lt;&nbsp;\n            <\/td>\n            <td>\n                K\u00fc\u00e7\u00fckt\u00fcr\n            <\/td>\n        <\/tr>\n        <tr>\n            <td>\n                &gt;=\n            <\/td>\n            <td>\n                B\u00fcy\u00fck Esittir\n            <\/td>\n        <\/tr>\n        <tr>\n            <td>\n                &lt;=\n            <\/td>\n            <td>\n                K\u00fc\u00e7\u00fck Esittir\n            <\/td>\n        <\/tr>\n    <\/table>\n    \n    <p>Iliskisel Operat&ouml;rler her zaman true veya false olmak &uuml;zere boolean bir deger d&ouml;nd&uuml;r&uuml;rler.<span style=\"\">&nbsp; <\/span>&Ouml;rnekle anlatmamiz gerekirse;<\/p>\n<pre class=\"brush: csharp\">\nint sayi1 = 6, sayi2 = 4;\nsayi1 == sayi2 \/\/false;\nsayi1 != sayi2 \/\/true;\nsayi1 > sayi2 \/\/true;\nsayi1 &lt; sayi2 \/\/false;\nsayi1 >= sayi2 \/\/true;\nsayi1 &lt;= sayi2 \/\/false;\n<\/pre>\n\n<p>Iliskisel operat&ouml;rler sadece birbiri ile uyumlu tipteki degiskenleri karsilastirabilir. Bir boolean tipi ile integer tipindeki iki degiskeni karsilastiramazsiniz.<\/p>\n\n<h3>Mantiksal ve Bit D&uuml;zeyinde (Logical and Bitwise) Opeat&ouml;rleri<\/h3>\n\n<p>Bu operat&ouml;rler mantiksal islemleri ve bit d&uuml;zeyindeki islemleri yapmak i&ccedil;in kullanilirlar.<\/p>\n\n <table class=\"reference\" cellspacing=\"0\" cellpadding=\"0\" border=\"1\" width=\"100%\">\n        <tr>\n            <th width=\"64\">\n                Operat\u00f6r\n            <\/th>\n            <th width=\"64\">\n                A\u00e7iklama\n            <\/th>\n        <\/tr>\n        <tr>\n            <td>\n                &amp;\n            <\/td>\n            <td>\n                Bit bazinda <strong>ve <\/strong>islemi\n            <\/td>\n        <\/tr>\n        <tr>\n            <td>\n                |\n            <\/td>\n            <td>\n                Bit bazinda <strong>or<\/strong> islemi\n            <\/td>\n        <\/tr>\n        <tr>\n            <td>\n                ^\n            <\/td>\n            <td>\n                Bit bazinda <strong>xor<\/strong> islemi\n            <\/td>\n        <\/tr>\n        <tr>\n            <td>\n                !\n            <\/td>\n            <td>\n                Bit bazinda <strong>not<\/strong> islemi\n            <\/td>\n        <\/tr>\n        <tr>\n            <td>\n                &amp;&amp;\n            <\/td>\n            <td>\n                Mantiksal <strong>ve<\/strong> islemi\n            <\/td>\n        <\/tr>\n        <tr>\n            <td>\n                ||\n            <\/td>\n            <td>\n                Mantiksal <strong>or<\/strong> islemi\n            <\/td>\n        <\/tr>\n    <\/table>\n<a href='www.yazilimmutfagi.com'>.<\/a>\n<p>Bit bazindaki operat&ouml;rler degiskene ait degeri bit bazinda isleme tabi tutarlar. Mantiksal operat&ouml;rler ise bildigimiz mantik kavrami kapsaminda bu ve su dogrumu veya bu veya su dogrumu gibi karsilastirma yaparlar.<\/p>\n\n<pre class=\"brush:csharp\">\nbool sonuc = (i > 3 && j < 5) || (i < 7 &#038;&#038; j > 3);\n<\/pre>\n\n<p><strong>Mantiksal operat&ouml;rlerde;<\/strong><\/p>\n<pre class=\"brush:csharp\">\nDogru ve Dogru = Dogru;\nDogru ve Yanlis = Yanlis;\nYanlis ve Dogru = Yanlis;\nYanlis ve Yanlis = Yanlis;\nDogru veya Dogru = Dogru;\nDogru veya Yanlis = Dogru;\nYanlis veya Dogru = Dogru;\nYanlis veya Yanlis = Yanlis;\n<\/pre>\n\n<p>Mantiksal And islemlerinde eger kosullardan herhangi biri yanlis ise and islemine tabi tutulan diger kosullar true olsa bile sonu&ccedil; falsedur. Or isleminde ise kosullardan herhangi birinin true olmasi diger kosullarin ne olduguna bakmaksizin sonucun true olmasini saglar.<\/p>\n\n<p>C# Mantiksal operat&ouml;rler Kisa Devre mantigiyla &ccedil;alisir. Mantiksal islemlerde kosullar soldan saga dogru kontrol edilir. Yukaridaki paragraftaki bilgiye g&ouml;re; bir and islemi kontrol ediliyorsa ve kosullardan birisi false ise sagda ka&ccedil; adet daha and kosulu olmasina bakmaksizin sonucu false olarak belirleyebiliriz. C# derleyicisi de bu y&ouml;ntemi kullanarak and isleminde ilk false g&ouml;rd&uuml;g&uuml; anda or isleminde ise ilk true g&ouml;rd&uuml;g&uuml; anda islemi keser ve sonucu d&ouml;nd&uuml;r&uuml;r. Bu b&uuml;y&uuml;k uygulamalarda &ccedil;ok fazla kosul oldugu zamanlar uygulamamizin daha hizli &ccedil;alismasini saglar.<\/p>\n\n<h3>C# da Kullanilan Diger Operat&ouml;rler<\/h3>\n\n\n <table class=\"reference\" cellspacing=\"0\" cellpadding=\"0\" border=\"1\" width=\"100%\">\n        <tr>\n            <th width=\"64\">\n                Operat\u00f6r\n            <\/th>\n            <th width=\"420\">\n                A\u00e7iklama\n            <\/th>\n        <\/tr>\n        <tr>\n            <td>\n                &gt;&gt;&nbsp;\n            <\/td>\n            <td>\n                Bit bazinda saga kaydirma\n            <\/td>\n        <\/tr>\n        <tr>\n            <td>\n                &lt;&lt;&nbsp;\n            <\/td>\n            <td>\n                Bit bazinda sola kaydirma\n            <\/td>\n        <\/tr>\n        <tr>\n            <td>\n                ,\n            <\/td>\n            <td>\n                Nesnelerin \u00f6zelliklerine ulasmak i\u00e7in\n            <\/td>\n        <\/tr>\n        <tr>\n            <td>\n                []\n            <\/td>\n            <td>\n                Indeks numarasi ile dizi ve kolleksiyonlarin elemanlarina ulasmak\n            <\/td>\n        <\/tr>\n        <tr>\n            <td>\n                ()\n            <\/td>\n            <td>\n                \u00c7evrim Operat\u00f6r\u00fc. Tip \u00e7evrimleri i\u00e7in kullanilir.\n            <\/td>\n        <\/tr>\n        <tr>\n            <td>\n                ?:\n            <\/td>\n            <td>\n                Kosul Operat\u00f6r\u00fc. if else kosulunun kisa yazimi. Ilerde anlatilacak\n            <\/td>\n        <\/tr>\n    <\/table>\n    \n\n\n<h3>Operat&ouml;rlerde &Ccedil;alisma &Ouml;nceligi<\/h3>\n<p>T&uuml;m operat&ouml;rlerin &ccedil;alisma &ouml;nceligi ayni degildir. Matematik kurallarinda ge&ccedil;erli olan &ccedil;arpma, b&ouml;lme, &ccedil;ikarma toplama islemlerindeki &ouml;ncelik sirasi operat&ouml;rler i&ccedil;inde ge&ccedil;erlidir. &Ouml;ncelikleri belirlemek i&ccedil;in islemleri parantez i&ccedil;inde yazmamiz gerekir. &Ouml;rnegin<\/p>\n  <pre class=\"brush:csharp\">\n\nint i = 3 + 2 * 6; \n\/\/ \u00f6nce 2 ile 6 \u00e7arpilir daha sonra \u00e7arpima 3 eklenerek 15 bulunur.\n\nint j = (3 + 2) * 6; \n\/\/ \u00f6nce 3 ile 2 toplanir daha sonra toplam 6 ile \u00e7arpilarak 30 bulunur.\n\n<\/pre>","protected":false},"excerpt":{"rendered":"<p>Bu dersimizde C# dili hakkinda temel bilgiler &#246;grenecegiz. Biraz a&#231;arsak bu dersimizde veri tipleri, degiskenler ve operat&#246;rleri nasil kullanacagimizla ilgili bilgiler verecegiz.<\/p>\n","protected":false},"author":517,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[436],"tags":[6346,6409,6356,5106,6261,5165,6402,6085,5733,4420,6436,4708,6285,6463,6504,6461,6503,6496,6485,6015,5692,4355,6484,6495],"_links":{"self":[{"href":"https:\/\/www.yazilimmutfagi.com\/index.php\/wp-json\/wp\/v2\/posts\/169"}],"collection":[{"href":"https:\/\/www.yazilimmutfagi.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.yazilimmutfagi.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.yazilimmutfagi.com\/index.php\/wp-json\/wp\/v2\/users\/517"}],"replies":[{"embeddable":true,"href":"https:\/\/www.yazilimmutfagi.com\/index.php\/wp-json\/wp\/v2\/comments?post=169"}],"version-history":[{"count":0,"href":"https:\/\/www.yazilimmutfagi.com\/index.php\/wp-json\/wp\/v2\/posts\/169\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.yazilimmutfagi.com\/index.php\/wp-json\/wp\/v2\/media?parent=169"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.yazilimmutfagi.com\/index.php\/wp-json\/wp\/v2\/categories?post=169"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.yazilimmutfagi.com\/index.php\/wp-json\/wp\/v2\/tags?post=169"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}