﻿
{"id":19397,"date":"2020-11-23T22:55:21","date_gmt":"2020-11-23T22:55:21","guid":{"rendered":"https:\/\/www.gencayyildiz.com\/blog\/?p=19397"},"modified":"2020-11-23T22:55:21","modified_gmt":"2020-11-23T22:55:21","slug":"c-9-0-lambda-discard-parameters","status":"publish","type":"post","link":"https:\/\/www.gencayyildiz.com\/blog\/c-9-0-lambda-discard-parameters\/","title":{"rendered":"C# 9.0 &#8211; Lambda Discard Parameters"},"content":{"rendered":"<div id=\"fb-root\"><\/div>\n<p>Merhaba,<\/p>\n<p>C# 7.0 s\u00fcr\u00fcm\u00fcnde hayat\u0131m\u0131za girmi\u015f olan <a href=\"https:\/\/www.gencayyildiz.com\/blog\/c-7-0-discard-kavrami\/\" rel=\"noopener noreferrer\" target=\"_blank\">Discard Kavram\u0131<\/a>, C# 9.0 versiyonunda alan\u0131n\u0131 daha da geni\u015fleterek lambda ifadelerinde de kullan\u0131labilir bir hal alm\u0131\u015ft\u0131r.<\/p>\n<p>Her\u015feyden \u00f6nce Discard&#8217;\u0131n ne oldu\u011funu hat\u0131rlayarak ba\u015flayal\u0131m&#8230; De\u011fi\u015fken tan\u0131mlamaya ihtiya\u00e7 duyulmad\u0131\u011f\u0131 durumlarda l\u00fczumsuz yere bellekte alan tahsisine mahal verilmemesi i\u00e7in Discard operat\u00f6r\u00fc kullan\u0131lmaktad\u0131r.<\/p>\n<p>\u0130\u00e7eri\u011fimizin giri\u015f paragraf\u0131nda referans edilen adreste Discard&#8217;a dair tam teferruatl\u0131 izahatte bulunmu\u015ftuk. O y\u00fczden fazla detaylara girmeksizin genel ge\u00e7er bir \u00f6rneklendirmeyle ilgili operat\u00f6r\u00fc \u00f6zetleyece\u011fiz;<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n            int a = 5;\r\n            _ = 5;\r\n<\/pre>\n<p>Yukar\u0131daki \u00f6rne\u011fe g\u00f6z atarsan\u0131z e\u011fer; 1. sat\u0131rdaki, bellekte &#8216;5&#8217; de\u011feri tahsis edilmi\u015f (int) t\u00fcr\u00fcnden bir alan\u0131 kaplayan de\u011fi\u015fken tan\u0131mlamas\u0131na kar\u015f\u0131l\u0131k gelirken, 2. sat\u0131rdaki ise program ak\u0131\u015f\u0131nda s\u00f6z konusu olan &#8216;5&#8217; de\u011feri ne bellekte tutulmakta ne de bunu tutacak bir de\u011fi\u015fken tan\u0131mlamas\u0131 yap\u0131lmaktad\u0131r. \u0130\u015fte Discard, bu tarz de\u011ferlerin belle\u011fe atama i\u015flemi olmaks\u0131z\u0131n \u00e7\u00f6p olarak kabul edilmesini sa\u011flayan bir operat\u00f6rd\u00fcr.<\/p>\n<p>Velhas\u0131l&#8230; C# 9.0&#8217;dan \u00f6nce lambda ifadelerinde parametre olarak kullan\u0131lamayan discard operat\u00f6r\u00fc, C# 9.0 ile birlikte lambda ifadelerinde de g\u00f6n\u00fcl rahatl\u0131\u011f\u0131yla kullan\u0131labilir hale gelmi\u015ftir.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nFunc&lt;int, int, string&gt; func = (_, _) =&gt; &quot;ABC&quot;;\r\n<\/pre>\n<p>B\u00f6ylece, lambda ifadelerinin s\u0131kl\u0131kla kullan\u0131ld\u0131\u011f\u0131 Func gibi delegasyonel yap\u0131lanmalarda, s\u00fcre\u00e7te herhangi bir algoritmik etkinli\u011fi olmayan parametrelerin bellekte l\u00fczumsuz yer i\u015fgal etmesinden ziyade discard ile sembolik tan\u0131mlamalar\u0131 sa\u011flanmakta ve b\u00f6ylece hem kodun sistemdeki yaratt\u0131\u011f\u0131 maliyet optimize edilmi\u015f olmakla birlikte, hem de performans\u0131 desteklenmektedir.<\/p>\n<p>\u0130lgilenenlerin faydalanmas\u0131 dile\u011fiyle&#8230;<br \/>\nSonraki yaz\u0131lar\u0131mda g\u00f6r\u00fc\u015fmek \u00fczere&#8230;<br \/>\n\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>Merhaba, C# 7.0 s\u00fcr\u00fcm\u00fcnde hayat\u0131m\u0131za girmi\u015f olan Discard Kavram\u0131, C# 9.0 versiyonunda alan\u0131n\u0131 daha da geni\u015fleterek lambda ifadelerinde de kullan\u0131labilir bir hal alm\u0131\u015ft\u0131r. Her\u015feyden \u00f6nce Discard&#8217;\u0131n ne oldu\u011funu hat\u0131rlayarak ba\u015flayal\u0131m&#8230; De\u011fi\u015fken tan\u0131mlamaya ihtiya\u00e7 duyulmad\u0131\u011f\u0131&#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":19209,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[12,3928],"tags":[3929,3954,3955],"class_list":["post-19397","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-c-sharp-c","category-c-9-0","tag-c-9-0","tag-c-9-0-lambda-discard-parameters","tag-lambda-discard-parameters"],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/19397","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=19397"}],"version-history":[{"count":9,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/19397\/revisions"}],"predecessor-version":[{"id":19406,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/19397\/revisions\/19406"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/media\/19209"}],"wp:attachment":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/media?parent=19397"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/categories?post=19397"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/tags?post=19397"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}