﻿
{"id":11236,"date":"2019-06-17T14:35:33","date_gmt":"2019-06-17T14:35:33","guid":{"rendered":"https:\/\/www.gencayyildiz.com\/blog\/?p=11236"},"modified":"2019-06-17T14:35:33","modified_gmt":"2019-06-17T14:35:33","slug":"c-8-0-static-local-functions","status":"publish","type":"post","link":"https:\/\/www.gencayyildiz.com\/blog\/c-8-0-static-local-functions\/","title":{"rendered":"C# 8.0 &#8211; Static Local Functions"},"content":{"rendered":"<div id=\"fb-root\"><\/div>\n<p>Merhaba,<\/p>\n<p>C# 7.0 ile hayat\u0131m\u0131za giren <a href=\"https:\/\/www.gencayyildiz.com\/blog\/c-7-0-local-functions\/\" rel=\"noopener noreferrer\" target=\"_blank\">Local Function<\/a> yap\u0131lar\u0131 ile metot i\u00e7erisinde metot tan\u0131mlayabiliyorduk. Bunun \u00fczerine C# 8.0 ile de Local Functionlar static \u00f6zellik kazanm\u0131\u015f, Static Local Function \u015feklinde kar\u015f\u0131m\u0131za gelmi\u015f bulunmaktad\u0131rlar.<\/p>\n<p>\u015eimdi hi\u00e7 vakit kaybetmeksizin a\u015fa\u011f\u0131da tan\u0131mlanm\u0131\u015f olan Local Function&#8217;\u0131 ele alarak konumuza ba\u015flayal\u0131m;<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n        void X(int a)\r\n        {\r\n            int b = 5;\r\n            Y();\r\n\r\n            void Y()\r\n            {\r\n                Console.WriteLine($&quot;a : {a} | b : {b}&quot;);\r\n            }\r\n        }\r\n<\/pre>\n<p>&#8220;X&#8221; metodu i\u00e7erisinde tan\u0131mlanm\u0131\u015f olan &#8220;Y&#8221; isimli Local Function g\u00f6r\u00fcld\u00fc\u011f\u00fc \u00fczere parametreyle birlikte gelen ve metot i\u00e7erisinde tan\u0131mlanm\u0131\u015f olan &#8220;a&#8221; ve &#8220;b&#8221; isimli de\u011fi\u015fkenlere eri\u015febilmektedir. Dolay\u0131s\u0131yla bu yerel de\u011fi\u015fkenlere olan eri\u015fim otomatik bir \u015fekilde direkt olarak ger\u00e7ekle\u015ftirilebilmektedir.<\/p>\n<p>Lakin a\u015fa\u011f\u0131daki gibi tan\u0131mlanm\u0131\u015f olan Static Local Function&#8217;\u0131 incelersek e\u011fer;<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n        void X(int a)\r\n        {\r\n            int b = 5;\r\n            Y(a, b);\r\n\r\n            static void Y(int a, int b)\r\n            {\r\n                Console.WriteLine($&quot;a : {a} | b : {b}&quot;);\r\n            }\r\n        }\r\n<\/pre>\n<p>Bu \u015fekilde bir static yap\u0131lanma yerel de\u011fi\u015fkenlere eri\u015filmesini engellemekte ve b\u00f6ylece eri\u015fim i\u00e7in harcanan maliyeti minimize etmi\u015f olmaktad\u0131r. Tabi yerel de\u011fi\u015fkenlere eri\u015filmek istendi\u011fi taktirde \u00f6rnekte de oldu\u011fu gibi parametre olarak ilgili de\u011fi\u015fkenlerin de\u011ferleri static fonksiyon i\u00e7erisine aktar\u0131labilmektedir.<\/p>\n<p>Netice olarak yapaca\u011f\u0131m\u0131z \u00e7\u0131kar\u0131m \u015fudur ki; static local function yap\u0131lar\u0131 yerel de\u011fi\u015fkenlere eri\u015fememekte ve b\u00f6ylece eri\u015fim maliyetini minimize etmektedir ve bundan dolay\u0131 yap\u0131 i\u00e7erisinde static olmayan fonksiyona nazaran daha performansl\u0131 \u00e7al\u0131\u015fmaktad\u0131r.<\/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 ile hayat\u0131m\u0131za giren Local Function yap\u0131lar\u0131 ile metot i\u00e7erisinde metot tan\u0131mlayabiliyorduk. Bunun \u00fczerine C# 8.0 ile de Local Functionlar static \u00f6zellik kazanm\u0131\u015f, Static Local Function \u015feklinde kar\u015f\u0131m\u0131za gelmi\u015f bulunmaktad\u0131rlar. \u015eimdi hi\u00e7&#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":11028,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2857],"tags":[2858,1492,2890],"class_list":["post-11236","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-c-8-0","tag-c-8-0","tag-local-functions","tag-static-local-functions"],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/11236","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=11236"}],"version-history":[{"count":4,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/11236\/revisions"}],"predecessor-version":[{"id":11241,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/11236\/revisions\/11241"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/media\/11028"}],"wp:attachment":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/media?parent=11236"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/categories?post=11236"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/tags?post=11236"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}