﻿
{"id":3528,"date":"2016-02-24T16:16:59","date_gmt":"2016-02-24T16:16:59","guid":{"rendered":"http:\/\/www.gencayyildiz.com\/blog\/?p=3528"},"modified":"2016-02-24T16:16:59","modified_gmt":"2016-02-24T16:16:59","slug":"cda-nullable-tipi-ve-operatoru","status":"publish","type":"post","link":"https:\/\/www.gencayyildiz.com\/blog\/cda-nullable-tipi-ve-operatoru\/","title":{"rendered":"C#&#8217;da Nullable Tipi ve ?? Operat\u00f6r\u00fc"},"content":{"rendered":"<div id=\"fb-root\"><\/div>\n<p>Programlamada manuel olarak &#8220;null&#8221; de\u011ferini kulland\u0131\u011f\u0131m\u0131z alanlardan ziyade, dinamik olarak de\u011fi\u015fkenlik g\u00f6sterebilen ve ne zaman nerede kar\u015f\u0131m\u0131za \u00e7\u0131kabilece\u011fini bilemeyece\u011fimiz durumlarda &#8220;null&#8221; de\u011feri olduk\u00e7a problem yaratabiliyor. Genellikle veritaban\u0131ndan elde etti\u011fimiz veriler i\u00e7erisinde i\u015flemlerimizi ger\u00e7ekle\u015ftirirken &#8220;null&#8221; de\u011ferinin bizleri peri\u015fan etti\u011fi durumlar\u0131 \u00e7ok g\u00f6rm\u00fc\u015f\u00fczd\u00fcr. Haliyle C# ve di\u011fer programlama dilleri &#8220;null&#8221; de\u011ferine \u00f6zel kontrol s\u0131n\u0131flar\u0131 veyahut mekanizmalar\u0131 olu\u015fturmaktad\u0131rlar. Bu yaz\u0131m\u0131zda sizlere &#8220;null&#8221; de\u011ferini kontrol ama\u00e7l\u0131 in\u015fa edilmi\u015f <strong><em>Generic Nullable<\/em><\/strong> s\u0131n\u0131f\u0131 ile <strong><em>??<\/em><\/strong> operat\u00f6r\u00fcn\u00fc tan\u0131taca\u011f\u0131m.<\/p>\n<h2><span style=\"color: #800000;\">Nullable S\u0131n\u0131f\u0131<\/span><\/h2>\n<p>Generic olarak tan\u0131mlanm\u0131\u015f bir s\u0131n\u0131ft\u0131r. Elde edilen verinin &#8220;null&#8221; olma durumuna g\u00f6re kontrol yapmam\u0131z\u0131 sa\u011flar.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n        static void Islem(Nullable&lt;int&gt; Sayi) {\r\n            if (!Sayi.HasValue)\r\n            {\r\n                Console.WriteLine(&quot;Say\u0131 girilmemi\u015ftir.&quot;);\r\n            }\r\n            else\r\n            {\r\n                Console.WriteLine(&quot;Girilen say\u0131 : &quot; + Sayi.Value);\r\n            }\r\n        }\r\n<\/pre>\n<p><em><strong>HasValue<\/strong> <\/em>\u00f6zelli\u011fi sayesinde de\u011fer var m\u0131? yok mu? kontrol edilmektedir.<br \/>\n<em><strong>Value<\/strong> <\/em>\u00f6zelli\u011fi sayesinde de, e\u011fer de\u011fer varsa o de\u011feri elde edebilmekteyiz.<\/p>\n<h2><span style=\"color: #800000;\">?? Operat\u00f6r\u00fc<\/span><\/h2>\n<p>Bu operat\u00f6r ile k\u0131sa ve net bir gramerle null de\u011ferleri kontrol edebiliyor ve m\u00fcdahale edebiliyoruz. \u015eimdi a\u015fa\u011f\u0131daki kod blo\u011funu inceleyiniz.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n        static void Islem(int? Sayi)\r\n        {\r\n            Sayi = Sayi ?? -1;\r\n            Console.WriteLine(Sayi.Value);\r\n        }\r\n<\/pre>\n<p>G\u00f6rd\u00fc\u011f\u00fcn\u00fcz gibi Sayi parametresine null de\u011fer girilirse ?? operat\u00f6r\u00fc ile kontrol edilmektedir. Okunu\u015fu \u015f\u00f6yledir. E\u011fer Say\u0131 de\u011feri null ise -1 de\u011ferini ata. \u0130\u015flemimiz bu kadar kolay&#8230;<\/p>\n<p>Tabi genellikle Asp.NET MVC mimarisinde kulland\u0131\u011f\u0131m\u0131z bu operat\u00f6r\u00fc birde o mimaride inceleyelim.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n        public ContentResult Topla(int? Sayi1, int? Sayi2)\r\n        {\r\n            Sayi1 = Sayi1 ?? 0;\r\n            Sayi2 = Sayi2 ?? 0;\r\n            return Content((Sayi1 + Sayi2).ToString());\r\n        }\r\n<\/pre>\n<p>Hepinize kolay gelsin&#8230;<br \/>\n\u0130yi \u00e7al\u0131\u015fmalar dilerim&#8230;<\/p>\n<!-- AddThis Advanced Settings generic via filter on the_content --><!-- AddThis Share Buttons generic via filter on the_content -->","protected":false},"excerpt":{"rendered":"<p>Programlamada manuel olarak &#8220;null&#8221; de\u011ferini kulland\u0131\u011f\u0131m\u0131z alanlardan ziyade, dinamik olarak de\u011fi\u015fkenlik g\u00f6sterebilen ve ne zaman nerede kar\u015f\u0131m\u0131za \u00e7\u0131kabilece\u011fini bilemeyece\u011fimiz durumlarda &#8220;null&#8221; de\u011feri olduk\u00e7a problem yaratabiliyor. Genellikle veritaban\u0131ndan elde etti\u011fimiz veriler i\u00e7erisinde i\u015flemlerimizi ger\u00e7ekle\u015ftirirken &#8220;null&#8221;&#46;&#46;&#46;<!-- AddThis Advanced Settings generic via filter on get_the_excerpt --><!-- AddThis Share Buttons generic via filter on get_the_excerpt --><\/p>\n","protected":false},"author":1,"featured_media":3014,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[10,600,12,720,345],"tags":[898,897,27,895,896,894,335],"class_list":["post-3528","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-asp-net","category-asp-net-mvc-5","category-c-sharp-c","category-c-6-0","category-mvc-4-0","tag-898","tag-operatoru","tag-c","tag-hasvalue","tag-null","tag-nullable","tag-value"],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/3528","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/comments?post=3528"}],"version-history":[{"count":0,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/3528\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/media\/3014"}],"wp:attachment":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/media?parent=3528"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/categories?post=3528"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/tags?post=3528"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}