﻿
{"id":3990,"date":"2016-04-10T05:29:08","date_gmt":"2016-04-10T05:29:08","guid":{"rendered":"http:\/\/www.gencayyildiz.com\/blog\/?p=3990"},"modified":"2016-04-10T05:29:08","modified_gmt":"2016-04-10T05:29:08","slug":"cda-checked-ve-unchecked-komutlari","status":"publish","type":"post","link":"https:\/\/www.gencayyildiz.com\/blog\/cda-checked-ve-unchecked-komutlari\/","title":{"rendered":"C#&#8217;da Checked ve UnChecked Komutlar\u0131"},"content":{"rendered":"<div id=\"fb-root\"><\/div>\n<p>C# programlama dilinde, elimizdeki say\u0131sal verileri birbirlerine cast operat\u00f6r\u00fc ile d\u00f6n\u00fc\u015ft\u00fcr\u00fcrken, k\u00fc\u00e7\u00fck de\u011fer aral\u0131\u011f\u0131na sahip tipte tutulan de\u011fi\u015fkeni b\u00fcy\u00fck de\u011fer aral\u0131\u011f\u0131na sahip tipte tutulan de\u011fi\u015fkene d\u00f6n\u00fc\u015ft\u00fcrmeye \u00e7al\u0131\u015f\u0131rsak  normal bir i\u015flem gibi alg\u0131lanacakt\u0131r. Lakin tam tersi durum, yani b\u00fcy\u00fck de\u011fer aral\u0131\u011f\u0131na sahip tipte tutulan de\u011fi\u015fkeni, k\u00fc\u00e7\u00fck de\u011fer aral\u0131\u011f\u0131na sahip bir tipte tutulan de\u011fi\u015fkene d\u00f6n\u00fc\u015ft\u00fcrmeye \u00e7al\u0131\u015f\u0131yorsak e\u011fer olas\u0131 veri kaybetme durumuyla kar\u015f\u0131 kar\u015f\u0131yay\u0131z demektir.<\/p>\n<p>Bu olas\u0131 hata durumu cast edilecek b\u00fcy\u00fck tipteki verinin de\u011ferinin, cast edildi\u011fi k\u00fc\u00e7\u00fck tipin de\u011fer aral\u0131\u011f\u0131n\u0131 a\u015fmas\u0131 durumunda ger\u00e7ekle\u015fen tetiklenmektedir.<\/p>\n<p>\u00d6rnek olarak a\u015fa\u011f\u0131daki durumu inceleyiniz;<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n        static void Main(string&#x5B;] args)\r\n        {\r\n            int Sayi1 = 999999999;\r\n            decimal Sayi2 = (decimal)Sayi1;\r\n        }\r\n<\/pre>\n<p>Yukar\u0131daki kod blo\u011funu incelerseniz e\u011fer int tipindeki Sayi1 de\u011fi\u015fkeni, cast edilerek decimal tipteki Sayi2 de\u011fi\u015fkenine atanm\u0131\u015ft\u0131r. Burada hata beklenmemektedir. \u00c7\u00fcnk\u00fc decimal tipinin de\u011fer aral\u0131\u011f\u0131 int tipinden b\u00fcy\u00fck oldu\u011fu i\u00e7in her halukarda ilgili veri alan\u0131 net fazla olaca\u011f\u0131 i\u00e7in veri kayb\u0131 beklenmeyecektir.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n        static void Main(string&#x5B;] args)\r\n        {\r\n            decimal Sayi1 = 999999999;\r\n            int Sayi2 = (int)Sayi1;\r\n        }\r\n<\/pre>\n<p>Yukar\u0131daki kod blo\u011funu incelersek e\u011fer; b\u00fcy\u00fck de\u011fer aral\u0131\u011f\u0131na sahip decimal tipinden Sayi1 de\u011fi\u015fkeni, cast edilerek kendisinden daha k\u00fc\u00e7\u00fck de\u011fer aral\u0131\u011f\u0131na sahip int tipinden Sayi2 de\u011fi\u015fkenine atanm\u0131\u015ft\u0131r. \u0130\u015fte b\u00f6yle bir durumda decimal de\u011fer i\u00e7erisindeki ifade int&#8217;in de\u011fer aral\u0131\u011f\u0131n\u0131 a\u015fabilecek k\u0131vamda olmas\u0131 muhtemeldir. \u015euan ki vaziyette int de\u011ferinin s\u0131n\u0131r\u0131yla neredeyse denk olan \u00f6rnekte bir hata olmayacakt\u0131r. Lakin Sayi1 de\u011fi\u015fkenine bir adet fazladan hane girildi\u011finde \u00e7al\u0131\u015fma zaman\u0131nda a\u015fa\u011f\u0131daki hata al\u0131nacakt\u0131r.<\/p>\n<p><a href=\"http:\/\/www.gencayyildiz.com\/blog\/cda-checked-ve-unchecked-komutlari\/cda-checked-ve-unchecked-komutlari\/\" rel=\"attachment wp-att-3991\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2016\/04\/Cda-Checked-ve-UnChecked-Komutlar\u0131.png\" alt=\"C#&#039;da Checked ve UnChecked Komutlar\u0131\" width=\"716\" height=\"130\" class=\"aligncenter size-full wp-image-3991\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2016\/04\/Cda-Checked-ve-UnChecked-Komutlar\u0131.png 716w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2016\/04\/Cda-Checked-ve-UnChecked-Komutlar\u0131-300x54.png 300w\" sizes=\"auto, (max-width: 716px) 100vw, 716px\" \/><\/a><br \/>\nG\u00f6rd\u00fc\u011f\u00fcn\u00fcz gibi decimal de\u011fi\u015fkenin de\u011feri int tipinin de\u011fer aral\u0131\u011f\u0131n\u0131 a\u015ft\u0131\u011f\u0131 durumda cast i\u015flemi yap\u0131ld\u0131\u011f\u0131nda hata al\u0131nmaktad\u0131r.<\/p>\n<p>\u0130\u015fte Checked ve UnChecked anahtar s\u00f6zc\u00fckleride bu tarz cast i\u015flemlerinde kullan\u0131labilen kontrol bloklar\u0131d\u0131rlar.<\/p>\n<h3>Checked Blo\u011fu<\/h3>\n<p>De\u011fi\u015fkenimizin t\u00fcr\u00fcn\u00fc daha k\u00fc\u00e7\u00fck bir tipe \u00e7evirirken veri kayb\u0131 oluyorsa program hata veriyor.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n        static void Main(string&#x5B;] args)\r\n        {\r\n            checked\r\n            {\r\n                decimal Sayi1 = 9999999990;\r\n                int Sayi2 = (int)Sayi1;\r\n            }\r\n        }\r\n<\/pre>\n<p>Bu \u015fekilde checked blo\u011fu i\u00e7erisinde cast i\u015flemi yap\u0131l\u0131yorsa, veri kayb\u0131 oldu\u011fu durumda yukar\u0131daki gibi \u00e7al\u0131\u015fma zaman\u0131 hatas\u0131 verecektir.<\/p>\n<h3>UnChecked Blo\u011fu<\/h3>\n<p>Checked tersi, program hata vermeden yoluna devam ediyor. Yani de\u011fi\u015fkenimizin t\u00fcr\u00fcn\u00fc daha k\u00fc\u00e7\u00fck bir tipe \u00e7evirirken veri kayb\u0131 oluyorsa program hata vermeden yolumuza devam edebiliyoruz.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n        static void Main(string&#x5B;] args)\r\n        {\r\n            uchecked\r\n            {\r\n                int Sayi1 = 999999999;\r\n                byte Sayi2 = (byte)Sayi1;\r\n            }\r\n        }\r\n<\/pre>\n<p>Yukar\u0131daki \u00f6rne\u011fi incelersek e\u011fer int tipinde bir de\u011fi\u015fken, kendisinden daha k\u00fc\u00e7\u00fck byte tipinden bir de\u011fi\u015fkene cast edilmektedir. Haliyle veri kayb\u0131 olu\u015fmakta ve bu durumu unchecked sayesinde g\u00f6z ard\u0131 ederek i\u015flemimize devam edilmektedir.<\/p>\n<p>Sonraki yaz\u0131lar\u0131mda g\u00f6r\u00fc\u015fmek \u00fczere&#8230;<\/p>\n<p>\u0130yi \u00e7al\u0131\u015fmalar&#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>C# programlama dilinde, elimizdeki say\u0131sal verileri birbirlerine cast operat\u00f6r\u00fc ile d\u00f6n\u00fc\u015ft\u00fcr\u00fcrken, k\u00fc\u00e7\u00fck de\u011fer aral\u0131\u011f\u0131na sahip tipte tutulan de\u011fi\u015fkeni b\u00fcy\u00fck de\u011fer aral\u0131\u011f\u0131na sahip tipte tutulan de\u011fi\u015fkene d\u00f6n\u00fc\u015ft\u00fcrmeye \u00e7al\u0131\u015f\u0131rsak normal bir i\u015flem gibi alg\u0131lanacakt\u0131r. Lakin tam&#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":3223,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[12,338,720],"tags":[27,1058,1059,1056,1057],"class_list":["post-3990","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-c-sharp-c","category-c-5-0","category-c-6-0","tag-c","tag-c-checked","tag-c-unchecked","tag-checked","tag-unchecked"],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/3990","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=3990"}],"version-history":[{"count":0,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/3990\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/media\/3223"}],"wp:attachment":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/media?parent=3990"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/categories?post=3990"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/tags?post=3990"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}