{"id":531,"date":"2018-12-27T09:51:04","date_gmt":"2018-12-27T06:51:04","guid":{"rendered":"http:\/\/www.aydiner.gen.tr\/?page_id=531"},"modified":"2018-12-27T10:04:57","modified_gmt":"2018-12-27T07:04:57","slug":"c-degisken-tanimlama","status":"publish","type":"page","link":"https:\/\/www.aydiner.gen.tr\/index.php\/c-degisken-tanimlama\/","title":{"rendered":"C# De\u011fi\u015fken Tan\u0131mlama"},"content":{"rendered":"<p>T\u00fcm programlama dillerinde oldu\u011fu gibi C# dilinde de de\u011fi\u015fkenler tan\u0131mlan\u0131rken baz\u0131 kurallara uyulmas\u0131 gerekmektedir. Bunun yan\u0131 s\u0131ra de\u011fi\u015fkenlerin faaliyet alan\u0131n\u0131n (de\u011fi\u015fkene eri\u015filebilecek b\u00f6lgelerin) iyi bilinmesi de \u00f6nemlidir.<\/p>\n<p>De\u011fi\u015fken Tan\u0131mlarken ve \u0130simlendirilirken Dikkat Edilecek Hususlar<br \/>\n<strong>1-<\/strong>C# dili b\u00fcy\u00fck-k\u00fc\u00e7\u00fck harf duyarl\u0131 bir oldu\u011fu i\u00e7in, de\u011fi\u015fken isimleri buna g\u00f6re verilmelidir. A\u015fa\u011f\u0131daki de\u011fi\u015fkenlerin \u00fc\u00e7\u00fc de farkl\u0131 de\u011fi\u015fken olarak alg\u0131lan\u0131r.<\/p>\n<p>int sayi; int Sayi; int SAYI;<\/p>\n<p><strong>2-<\/strong>De\u011fi\u015fken isimleri rakam ile ba\u015flayamaz, ancak di\u011fer karakterler rakam olabilir.<\/p>\n<p>int 1sayi; \/\/ yanl\u0131\u015f<br \/>\nint sayi1; \/\/do\u011fru<\/p>\n<p><strong>3-<\/strong>De\u011fi\u015fken ismi birden fazla kelimeden olu\u015fuyorsa araya bo\u015fluk konulmaz. \u0130htiya\u00e7 halinde _ ile kelimeler birle\u015ftirilebilir.<\/p>\n<p>int sinav notu; \/\/yanl\u0131\u015f<br \/>\nint sinavnotu; \/\/do\u011fru<br \/>\nint sinav_notu; \/\/do\u011fru<\/p>\n<p><strong>4-<\/strong>C# dilinde kullan\u0131lan \u00f6zel komutlar veya anahtar kelimeler de\u011fi\u015fken ismi olarak kullan\u0131lmaz.<\/p>\n<p>\u00d6rne\u011fin de\u011fi\u015fken isimleri, if,switch, for, do, continue, default, case, catch, try, finally, true, false, public, static, private, this, using, while, protected, v.b kelimeler de\u011fi\u015fken ismi olarak kullan\u0131lamaz. Bu anahtar kelimeleri akl\u0131n\u0131zda tutmak zorunda de\u011filsiniz, zaman i\u00e7erisinde zaten bir\u00e7o\u011funu \u00f6\u011freneceksiniz.<\/p>\n<p><strong>5-<\/strong>De\u011fi\u015fken isimleri i\u00e7erisinde \u00f6zel karakterler kullan\u0131lmaz. \u00d6rne\u011fin ?, !, &gt;, &lt;, =, {, %, \u2018, ), #, @, +, -, \/, *, &amp;, [ gibi. Yukar\u0131da da bahsedildi\u011fi gibi sadece _ (alt \u00e7izgi) kullan\u0131m\u0131 istisnad\u0131r.<\/p>\n<p>De\u011fi\u015fken isimlerinde T\u00fcrk\u00e7e karakter kullan\u0131m\u0131 hataya neden olmasa da kullan\u0131lmas\u0131 tavsiye edilmez.<\/p>\n<h2>De\u011fi\u015fkenlerin Ya\u015fam Alan\u0131<\/h2>\n<p>Genel kural \u015fudur;&nbsp;<strong>de\u011fi\u015fkenler tan\u0131mland\u0131\u011f\u0131 blok i\u00e7erisinde faaliyet g\u00f6sterirler.<\/strong>&nbsp;Tabi bu durumun istisnalar\u0131 mevcuttur. Burada istisnalara de\u011finip kafan\u0131z\u0131 kar\u0131\u015ft\u0131rmayaca\u011f\u0131m.<\/p>\n<pre class=\"lang:default decode:true \">static void Main(string[] args)\r\n  {\r\n    double sayi1 = 15, sayi2 = 25;\r\n  }\r\n  \r\nvoid hesapla()\r\n  {\r\n      double ort = (sayi1 + sayi2)\/2;\r\n  }<\/pre>\n<p>Bu \u00f6rnekte hesapla metodu (blo\u011fu) i\u00e7erisinden sayi1 ve sayi2 de\u011fi\u015fkenlerine ula\u015fmak ve i\u015flem yapmak m\u00fcmk\u00fcn de\u011fildir. Yukar\u0131da ki gibi bir kullan\u0131m hataya sebep olur.<\/p>\n<p>Ayn\u0131 durum if, for, while gibi ko\u015ful ve d\u00f6ng\u00fc bloklar\u0131 i\u00e7inde ge\u00e7erlidir.<\/p>\n<pre class=\"lang:default decode:true \">static void Main(string[] args)\r\n {\r\n     int deger = 45;\r\n     if (deger &gt; 20)\r\n     {\r\n        int toplam = 100;\r\n     }\r\n  Console.WriteLine(toplam);\r\n \r\n }<\/pre>\n<p>Bu \u00f6rnekte toplam de\u011fi\u015fkeni if blo\u011fu i\u00e7erisinde tan\u0131mland\u0131\u011f\u0131 i\u00e7in, sadece bu blok i\u00e7erisinde varl\u0131\u011f\u0131n\u0131 s\u00fcrd\u00fcrebilir. Yukar\u0131daki gibi bir kullan\u0131m hataya neden olacakt\u0131r.<\/p>\n<h2>De\u011fi\u015fken Kullan\u0131m \u00d6rnekleri<\/h2>\n<pre class=\"lang:default decode:true\">int sayi=5;\r\nint x,y=8,z; \/\/Ayn\u0131 t\u00fcrdeki de\u011fi\u015fkenler ayn\u0131 anda tan\u0131mlanabilir.\r\nbool aktif = true; \r\nfloat f = 5.4f; \/\/ De\u011ferin sonuna ekledi\u011fimiz f harfi de\u011fi\u015fkenin float t\u00fcr\u00fcnde oldu\u011funu g\u00f6sterir.\r\ndouble d = 3.2;\r\nbyte b = 230;\r\nlong l = 123456789;\r\nshort s = -312;\r\ndecimal dec = -5.26m; \/\/De\u011ferin sonundaki m harfi de\u011fi\u015fkenin decimal t\u00fcr\u00fcnde oldu\u011funu g\u00f6sterir.\r\nchar ch = 'c';  \/\/Char tipinde ki de\u011fi\u015fkenler tek t\u0131rnak i\u00e7erisine yaz\u0131l\u0131r.\r\nString deger=\u201dmerhaba\u201d;<\/pre>\n<table border=\"1\" cellspacing=\"0\" cellpadding=\"1\">\n<tbody>\n<tr>\n<th>T\u00fcr<\/th>\n<th>Boyut<\/th>\n<th>Kapasite<\/th>\n<th>\u00d6rnek<\/th>\n<\/tr>\n<tr>\n<td>byte<\/td>\n<td>1 bayt<\/td>\n<td>0, &#8230;, 255 (tam say\u0131)<\/td>\n<td><tt>byte a=5;<\/tt><\/td>\n<\/tr>\n<tr>\n<td>sbyte<\/td>\n<td>1 bayt<\/td>\n<td>-128, &#8230;, 127 (tam say\u0131)<\/td>\n<td><tt>sbyte a=5;<\/tt><\/td>\n<\/tr>\n<tr>\n<td>short<\/td>\n<td>2 bayt<\/td>\n<td>-32768, &#8230;, 32767 (tam say\u0131)<\/td>\n<td><tt>short a=5;<\/tt><\/td>\n<\/tr>\n<tr>\n<td>ushort<\/td>\n<td>2 bayt<\/td>\n<td>0, &#8230;, 65535 (tam say\u0131)<\/td>\n<td><tt>ushort a=5;<\/tt><\/td>\n<\/tr>\n<tr>\n<td>int<\/td>\n<td>4 bayt<\/td>\n<td>-2147483648, &#8230;, 2147483647 (tam say\u0131)<\/td>\n<td><tt>int a=5;<\/tt><\/td>\n<\/tr>\n<tr>\n<td>uint<\/td>\n<td>4 bayt<\/td>\n<td>0, &#8230;, 4294967295 (tam say\u0131)<\/td>\n<td><tt>uint a=5;<\/tt><\/td>\n<\/tr>\n<tr>\n<td>long<\/td>\n<td>8 bayt<\/td>\n<td>-9223372036854775808, &#8230;, 9223372036854775807 (tam say\u0131)<\/td>\n<td><tt>long a=5;<\/tt><\/td>\n<\/tr>\n<tr>\n<td>ulong<\/td>\n<td>8 bayt<\/td>\n<td>0, &#8230;, 18446744073709551615 (tam say\u0131)<\/td>\n<td><tt>ulong a=5;<\/tt><\/td>\n<\/tr>\n<tr>\n<td>float<\/td>\n<td>4 bayt<\/td>\n<td>\u00b11.5*10<sup>-45<\/sup>, &#8230;, \u00b13.4*10<sup>38<\/sup>&nbsp;(reel say\u0131)<\/td>\n<td><tt>float a=5F;<\/tt>&nbsp;veya&nbsp;<tt>float a=5f;<\/tt><\/td>\n<\/tr>\n<tr>\n<td>double<\/td>\n<td>8 bayt<\/td>\n<td>\u00b15.0*10<sup>-324<\/sup>, &#8230;, \u00b11.7*10<sup>308<\/sup>&nbsp;(reel say\u0131)<\/td>\n<td><tt>double a=5;<\/tt>&nbsp;veya&nbsp;<tt>double a=5d;<\/tt>&nbsp;veya&nbsp;<tt>double a=5D;<\/tt><\/td>\n<\/tr>\n<tr>\n<td>decimal<\/td>\n<td>16 bayt<\/td>\n<td>\u00b11.5*10<sup>-28<\/sup>, &#8230;, \u00b17.9*10<sup>28<\/sup>&nbsp;(reel say\u0131)<\/td>\n<td><tt>decimal a=5M;<\/tt>&nbsp;veya&nbsp;<tt>decimal a=5m;<\/tt><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Baz\u0131 de\u011fi\u015fken t\u00fcrlerinde de\u011fer atarken de\u011ferin sonuna bir karakter eklenir, bu de\u011fi\u015fken t\u00fcrlerindeki de\u011fi\u015fkenlere de\u011fer atarken siz de bunlara dikkat etmelisiniz. Metinsel t\u00fcrler:<\/p>\n<table border=\"1\" cellspacing=\"0\" cellpadding=\"1\">\n<tbody>\n<tr>\n<th>T\u00fcr<\/th>\n<th>Boyut<\/th>\n<th>A\u00e7\u0131klama<\/th>\n<th>\u00d6rnek<\/th>\n<\/tr>\n<tr>\n<td>char<\/td>\n<td>2 bayt<\/td>\n<td>Tek bir karakteri tutar.<\/td>\n<td><tt>char a='h';<\/tt><\/td>\n<\/tr>\n<tr>\n<td>string<\/td>\n<td>S\u0131n\u0131rs\u0131z<\/td>\n<td>Metin tutar.<\/td>\n<td><tt>string a=\"Bili\u015fim Teknolojileri Alan\u0131\";<\/tt><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><strong>bool<\/strong><br \/>\nKo\u015fullu yap\u0131larda kullan\u0131l\u0131r. Bool t\u00fcr\u00fcnden de\u011ferlere true, false veya 2&lt;1 gibi ifadeler \u00f6rnek verilebilir. \u00d6rnekler:<\/p>\n<p>bool b1=true;<br \/>\nbool b2=false;<br \/>\nbool b3=5&gt;4;<br \/>\n<strong>object<\/strong><br \/>\nBu de\u011fi\u015fken t\u00fcr\u00fcne her t\u00fcrden veri atanabilir. \u00d6rnekler:<\/p>\n<p>object a=10;<br \/>\nobject b=&#8217;k&#8217;;<br \/>\nobject c=&#8221;metin&#8221;;<br \/>\nobject d=12.7f;<\/p>\n<p>C#&#8217;taki b\u00fct\u00fcn de\u011fi\u015fken t\u00fcrleri object t\u00fcr\u00fcnden t\u00fcremi\u015ftir.&nbsp;<\/p>\n<p><strong>De\u011fi\u015fkeni program\u0131m\u0131z i\u00e7inde kullanma<\/strong><br \/>\n<strong>Bir \u00f6rnek:<\/strong><\/p>\n<pre class=\"lang:default decode:true\">using System;\r\nclass degiskenler\r\n{\r\nstatic void Main()\r\n{\r\nbyte a=5;\r\nConsole.WriteLine(a);\r\n}\r\n}\r\n\/\/Burada a de\u011fi\u015fkeninin de\u011ferini ekrana yazd\u0131rd\u0131k.<\/pre>\n<p>Ba\u015fka bir \u00f6rnek:<\/p>\n<pre class=\"lang:default decode:true \">using System;\r\nclass degiskenler\r\n{\r\nstatic void Main()\r\n{\r\nbyte a=5;\r\nbyte b=8;\r\nConsole.WriteLine(a+b);\r\n}\r\n}\r\n\/\/Bu programda iki de\u011fi\u015fkenimizin de\u011ferlerinin toplam\u0131n\u0131 ekrana yazd\u0131rd\u0131k.<\/pre>\n<pre class=\"lang:default decode:true \">using System;\r\nclass degiskenler\r\n{\r\nstatic void Main()\r\n{\r\nstring a=\"Bili\u015fim\", b=\"Akan\u0131\";\r\nConsole.WriteLine(a+b);\r\n}\r\n}<\/pre>\n<p>Bu programda ayn\u0131 sat\u0131rda iki tane string de\u011fi\u015fkeni tan\u0131mlad\u0131k ve de\u011fer verdik. Bu de\u011fi\u015fkenlerin de\u011ferlerini WriteLine metoduyla ekrana yan yana yazd\u0131rd\u0131k. WriteLine metodu + i\u015faretini g\u00f6rd\u00fc\u011f\u00fcnde say\u0131sal de\u011fi\u015fken ve de\u011ferleri toplar, string t\u00fcr\u00fcnden de\u011fi\u015fken ve de\u011ferleri yan yana yazar, char t\u00fcr\u00fcnden de\u011fi\u015fken ve de\u011ferlerin Unicode kar\u015f\u0131l\u0131klar\u0131n\u0131 toplar. Ancak tabii ki + karakterinin ay\u0131rd\u0131\u011f\u0131 de\u011fi\u015fken veya de\u011ferler char ile stringse char karakterle string metni yan yana yazar.<\/p>\n<pre class=\"lang:default decode:true \">using System;\r\nclass degiskenler\r\n{\r\nstatic void Main()\r\n{\r\nstring a;\r\na=Console.ReadLine();\r\nConsole.WriteLine(a+\" metnini yazd\u0131n\u0131z.\");\r\n}\r\n}<\/pre>\n<p>Bu program kullan\u0131c\u0131dan bir metin al\u0131p bunu ekrana &#8220;&#8230; metnini yazd\u0131n\u0131z.&#8221; \u015feklinde yaz\u0131yor. ReadLine metodunu kullan\u0131c\u0131 entera basana kadar program\u0131 bekletmek i\u00e7in kullanm\u0131\u015ft\u0131k. Asl\u0131nda ReadLine metodunun en yayg\u0131n kullan\u0131m\u0131 kullan\u0131c\u0131n\u0131n <strong>bilgi giri\u015fi<\/strong> yapmas\u0131n\u0131 sa\u011flamakt\u0131r. Dikkat ettiyseniz program\u0131m\u0131zda kullan\u0131c\u0131n\u0131n girdi\u011fi bilgi a de\u011fi\u015fkenine atan\u0131yor. Sonra da WriteLine metoduyla ekrana bu de\u011fi\u015fken ve &#8221; metnini yazd\u0131n\u0131z.&#8221; metni yan yana yazd\u0131r\u0131l\u0131yor. Burada as\u0131l \u00f6nemsememiz gereken \u015fey Console.ReadLine() ifadesinin string t\u00fcr\u00fcnden bir de\u011fer gibi kullan\u0131labilmesidir. C#&#8217;ta bunun gibi bir\u00e7ok metot bir de\u011fer gibi kullan\u0131labilir. Tahmin edebilece\u011finiz \u00fczere WriteLine gibi bir\u00e7ok metot da bir de\u011fer gibi kullan\u0131lamaz. Ba\u015fka bir \u00f6rnek:<\/p>\n<pre class=\"lang:default decode:true \">using System;\r\nclass degiskenler\r\n{\r\nstatic void Main()\r\n{\r\nint a, b;\r\na=20;\r\nb=a;\r\nConsole.WriteLine(b);\r\n}\r\n}<\/pre>\n<p>Bu programda da g\u00f6rebilece\u011finiz gibi de\u011fi\u015fkenlere de\u011fer olarak ba\u015fka bir de\u011fi\u015fkeni atayabiliriz. Ancak de\u011ferini atad\u0131\u011f\u0131m\u0131z de\u011fi\u015fkene daha \u00f6nceden bir de\u011fer atanm\u0131\u015f olmas\u0131 gerekiyor. Burada b de\u011fi\u015fkenine a de\u011fi\u015fkeninin de\u011feri atan\u0131yor. Ancak a\u015fa\u011f\u0131daki gibi bir kullan\u0131m kesinlikle hatal\u0131d\u0131r.<\/p>\n<pre class=\"lang:default decode:true \">using System;\r\nclass degiskenler\r\n{\r\nstatic void Main()\r\n{\r\nConsole.ReadLine()=\"metin\";\r\nstring a=Console.ReadLine();\r\nConsole.WriteLine(a);\r\n}\r\n}<\/pre>\n<p>Burada Console.ReadLine() ifadesi bir de\u011fi\u015fkenmi\u015f gibi kullan\u0131lmaya \u00e7al\u0131\u015f\u0131l\u0131yor, ancak hatal\u0131. \u00c7\u00fcnk\u00fc Console.ReadLine() ifadesi yaln\u0131zca bir de\u011fermi\u015f gibi kullan\u0131labilir.<\/p>\n<p><strong>De\u011fi\u015fken adland\u0131rma kurallar\u0131<\/strong><br \/>\n\u015eimdiye kadar de\u011fi\u015fkenlere ad, a veya b gibi basit adlar verdik. Ancak a\u015fa\u011f\u0131daki kurallar\u0131 ihlal etmemek \u015fart\u0131yla de\u011fi\u015fkenlere istedi\u011finiz ad\u0131 verebilirsiniz.<\/p>\n<ul>\n<li>De\u011fi\u015fken adlar\u0131 bo\u015fluk, simge i\u00e7eremez.<\/li>\n<li>De\u011fi\u015fkenler bir numerik karakterle ba\u015flayamaz.<\/li>\n<li>C#&#8217;\u0131n di\u011fer b\u00fct\u00fcn komut, metot ve benzerlerinde oldu\u011fu gibi de\u011fi\u015fken adlar\u0131nda b\u00fcy\u00fck-k\u00fc\u00e7\u00fck harf duyarl\u0131l\u0131\u011f\u0131 vard\u0131r. Yani degisken isimli bir de\u011fi\u015fkenle Degisken isimli bir de\u011fi\u015fken birbirinden farkl\u0131d\u0131r.<\/li>\n<li>De\u011fi\u015fken adlar\u0131 T\u00fcrk\u00e7e karakterlerden(\u011f,\u00fc,\u015f,\u00f6,\u00e7,\u0131) olu\u015famaz. (Yeni versiyonlarda T\u00fcrk\u00e7e karakterler kullan\u0131labilir.)\n<p><span style=\"color: #ff0000;\"><strong>S\u0131k yap\u0131lan hatalar<\/strong><\/span><br \/>\nC#&#8217;ta de\u011fi\u015fkenlerle ilgili s\u0131k yap\u0131lan hatalar \u015funlard\u0131r:<\/li>\n<\/ul>\n<p>Ayn\u0131 sat\u0131rda farkl\u0131 t\u00fcrden de\u011fi\u015fkenler tan\u0131mlamaya \u00e7al\u0131\u015fma. \u00d6rne\u011fin a\u015fa\u011f\u0131daki \u00f6rnek hatal\u0131d\u0131r:<br \/>\n<strong>int a, string b;<\/strong><br \/>\nDe\u011fi\u015fkene uygunsuz de\u011fer vermeye \u00e7al\u0131\u015fma. \u00d6rnek:<br \/>\n<strong>int a;<\/strong><br \/>\n<strong>a=&#8221;metin&#8221;;<\/strong><br \/>\nDe\u011fi\u015fkeni tan\u0131mlamadan ve\/veya de\u011fi\u015fkene ilk de\u011fer vermeden de\u011fi\u015fkeni kullanmaya \u00e7al\u0131\u015fma. A\u015fa\u011f\u0131daki \u00f6rnekte iki de\u011fi\u015fkenin de kullan\u0131m\u0131 hatal\u0131d\u0131r.<br \/>\nusing System;<br \/>\nclass degiskenler<br \/>\n{<br \/>\nstatic void Main()<br \/>\n{<br \/>\nint b;<br \/>\nConsole.WriteLine(a);<br \/>\nConsole.WriteLine(b);<br \/>\n}<br \/>\n}<br \/>\n<strong>De\u011fi\u015fken tan\u0131mlamas\u0131 ve\/veya de\u011fer vermeyi yanl\u0131\u015f yerde yapma. \u00d6rnek:<\/strong><br \/>\nusing System;<br \/>\nclass degiskenler<br \/>\n{<br \/>\nint a=5;<br \/>\nstatic void Main()<br \/>\n{<br \/>\nConsole.WriteLine(a);<br \/>\n}<br \/>\n}<br \/>\n<strong>Di\u011fer using d\u0131\u015f\u0131ndaki b\u00fct\u00fcn komutlarda da oldu\u011fu gibi de\u011fi\u015fken tan\u0131m ve de\u011fer vermelerini de Main blo\u011funun i\u00e7inde yapmal\u0131y\u0131z.<\/strong><br \/>\n<strong>Baz\u0131 de\u011fi\u015fken t\u00fcrlerindeki de\u011fi\u015fkenlere de\u011fer verirken eklenmesi gereken karakteri eklememek. \u00d6rnek:<\/strong><br \/>\nusing System;<br \/>\nclass degiskenler<br \/>\n{<br \/>\nstatic void Main()<br \/>\n{<br \/>\nfloat a=12.5;<br \/>\nConsole.WriteLine(a);<br \/>\n}<br \/>\n}<br \/>\n<strong>Ondal\u0131k say\u0131lar\u0131n ondal\u0131k k\u0131sm\u0131n\u0131 ay\u0131r\u0131rken nokta (.) yerine virg\u00fcl (,) kullanmak. \u00d6rnek:<\/strong><br \/>\nusing System;<br \/>\nclass degiskenler<br \/>\n{<br \/>\nstatic void Main()<br \/>\n{<br \/>\nfloat a=12,5f;<br \/>\nConsole.WriteLine(a);<br \/>\n}<br \/>\n}<br \/>\n<strong>Metinsel de\u011fi\u015fkenlerle matematiksel i\u015flem yapmaya \u00e7al\u0131\u015fmak. \u00d6rnek:<\/strong><br \/>\nusing System;<br \/>\nclass degiskenler<br \/>\n{<br \/>\nstatic void Main()<br \/>\n{<br \/>\nstring a=&#8221;1&#8243;, b=&#8221;2&#8243;;<br \/>\nint c=a+b;<br \/>\nConsole.WriteLine(a);<br \/>\n}<br \/>\n}<br \/>\n<strong>Bir de\u011fi\u015fkeni birden fazla kez tan\u0131mlamak. \u00d6rnek:<\/strong><br \/>\nusing System;<br \/>\nclass degiskenler<br \/>\n{<br \/>\nstatic void Main()<br \/>\n{<br \/>\nstring a;<br \/>\nstring a=&#8221;deneme&#8221;;<br \/>\nConsole.WriteLine(a);<br \/>\n}<br \/>\n}<br \/>\n<strong>De\u011fi\u015fkenlere de\u011fer verirken yanl\u0131\u015f \u015fekilde de\u011fer vermek. \u00d6rnek:<\/strong><br \/>\nusing System;<br \/>\nclass degiskenler<br \/>\n{<br \/>\nstatic void Main()<br \/>\n{<br \/>\nstring a=deneme;<br \/>\nConsole.WriteLine(a);<br \/>\n}<br \/>\n}<br \/>\n<strong>Sabit de\u011fi\u015fkenler<\/strong><br \/>\nProgram\u0131m\u0131zda bazen de\u011feri hi\u00e7 de\u011fi\u015fmeyecek de\u011fi\u015fkenler tan\u0131mlar\u0131z. \u00d6rne\u011fin pi isimli float t\u00fcr\u00fcnden bir de\u011fi\u015fken tan\u0131mlay\u0131p buna 3.14 de\u011ferini verip program\u0131m\u0131zda pi say\u0131s\u0131na ihtiya\u00e7 duyuldu\u011funda bu de\u011fi\u015fkeni kullanabiliriz. Sabit de\u011fi\u015fkenlerin normal de\u011fi\u015fkenlerden fark\u0131 de\u011fi\u015fkeni de\u011fi\u015ftirmek istedi\u011fimizde ortaya \u00e7\u0131kar, sabit olarak belirtilen de\u011fi\u015fkeni de\u011fi\u015ftirirsek derleyici hata verip program\u0131m\u0131z\u0131 derlemez. Bu daha \u00e7ok uzun program kodlar\u0131nda i\u015fe yarayabilir. Ayr\u0131ca sabit de\u011fi\u015fkenlere tan\u0131mland\u0131\u011f\u0131 sat\u0131rda de\u011fer vermeliyiz. Herhangi bir de\u011fi\u015fkeni sabit olarak belirtmemiz i\u00e7in de\u011fi\u015fken t\u00fcr\u00fcnden \u00f6nce const anahtar s\u00f6zc\u00fc\u011f\u00fc kullan\u0131l\u0131r. \u00d6rnekler:<\/p>\n<p>const int a = 5;<br \/>\nconst string b =&#8221;deneme&#8221;;<br \/>\nconst char c =&#8217;s&#8217;;<br \/>\nA\u015fa\u011f\u0131daki gibi bir durum, de\u011fi\u015fkene tan\u0131mland\u0131\u011f\u0131 sat\u0131rda de\u011fer verilmedi\u011fi i\u00e7in hatal\u0131d\u0131r.<\/p>\n<p>const int a;<br \/>\na=5;<br \/>\nSabit de\u011fi\u015fkenlere de\u011fer olarak sabit, sabit de\u011fi\u015fken ya da sabit ve\/veya sabit de\u011fi\u015fkenlerden olu\u015fan matematiksel ifadeler verilebilir. \u00d6rnek:<\/p>\n<p>const int a=5;<br \/>\nconst int b=a+7;<br \/>\nconst int c=a*b;<br \/>\nA\u015fa\u011f\u0131daki gibi bir durum hatal\u0131d\u0131r.<\/p>\n<p>int a=5;<br \/>\nconst int b=a+8;<br \/>\nEscape sequence (\\) kullan\u0131m\u0131<br \/>\nBir string sabitin i\u00e7inde \u00f6zel karakterler olmas\u0131 i\u00e7in escape sequence kullan\u0131l\u0131r. \u00d6rnekler:<\/p>\n<p>string ad=&#8221;Deneme\\&#8221;Deneme&#8221;;<br \/>\nConsole.WriteLine(ad);<br \/>\nBu sat\u0131rda &#8221; karakterinin ad de\u011fi\u015fkenine atanan string sabitin i\u00e7ine koyulmas\u0131n\u0131 sa\u011flad\u0131k. Yukar\u0131daki kod ekrana Deneme&#8221;Deneme yazar. Ba\u015fka bir \u00f6rnek:<\/p>\n<p>string yol=&#8221;Windows\\\\Program Files&#8221;;<br \/>\nBurada bir illegal karakter olan \\ karakterinin ba\u015f\u0131na tekrar \\ koyarak stringin bir tane \\ almas\u0131n\u0131 sa\u011flad\u0131k.<\/p>\n<p>string yol=@&#8221;Windows\\Program Files&#8221;;<br \/>\nBurada yol de\u011fi\u015fkenine t\u0131rnak i\u00e7erisindeki metin oldu\u011fu gibi aktar\u0131l\u0131r, ancak do\u011fal olarak &#8221; karakterinde i\u015fe yaramaz.<\/p>\n<p>Console.WriteLine(&#8220;Sat\u0131r\\nYeni sat\u0131r\\nYeni sat\u0131r&#8221;);<br \/>\n\u00d6rnekte de g\u00f6rd\u00fc\u011f\u00fcn\u00fcz \u00fczere C#&#8217;ta \\n yeni sat\u0131r yapmak i\u00e7in kullan\u0131l\u0131r.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>T\u00fcm programlama dillerinde oldu\u011fu gibi C# dilinde de de\u011fi\u015fkenler tan\u0131mlan\u0131rken baz\u0131 kurallara uyulmas\u0131 gerekmektedir. Bunun yan\u0131 s\u0131ra de\u011fi\u015fkenlerin faaliyet alan\u0131n\u0131n [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-531","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.aydiner.gen.tr\/index.php\/wp-json\/wp\/v2\/pages\/531","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.aydiner.gen.tr\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.aydiner.gen.tr\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.aydiner.gen.tr\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.aydiner.gen.tr\/index.php\/wp-json\/wp\/v2\/comments?post=531"}],"version-history":[{"count":0,"href":"https:\/\/www.aydiner.gen.tr\/index.php\/wp-json\/wp\/v2\/pages\/531\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.aydiner.gen.tr\/index.php\/wp-json\/wp\/v2\/media?parent=531"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}