﻿
{"id":3151,"date":"2015-08-03T02:58:35","date_gmt":"2015-08-03T02:58:35","guid":{"rendered":"http:\/\/www.gencayyildiz.com\/blog\/?p=3151"},"modified":"2015-08-03T02:58:35","modified_gmt":"2015-08-03T02:58:35","slug":"c-6-0-static-usingmembers","status":"publish","type":"post","link":"https:\/\/www.gencayyildiz.com\/blog\/c-6-0-static-usingmembers\/","title":{"rendered":"C# 6.0 &#8211; Static Using(Members)"},"content":{"rendered":"<div id=\"fb-root\"><\/div>\n<p>Yaz\u0131l\u0131m dillerinin \u00f6nemli yap\u0131lar\u0131ndan birisi olan static \u00fcyeler, yaz\u0131l\u0131msal a\u00e7\u0131dan her ne kadar biz programc\u0131lara kolayl\u0131k sa\u011flasada, .NET mimarlar\u0131da bu \u00fcyelerin kullan\u0131l\u0131\u015f\u0131n\u0131da yaz\u0131sal a\u00e7\u0131dan daha kolay hale getirmi\u015flerdir.Biliyorsunuz ki, bir s\u0131n\u0131f\u0131n nesnesini \u00fcretmeye gerek kalmaks\u0131z\u0131n i\u00e7inde bulunan static yap\u0131lara, ilgili s\u0131n\u0131f\u0131n ismi \u00fczerinden ula\u015fabiliyorduk.C# 6.0 ile Static Using yenili\u011fi gelerek bu i\u015flemi daha esnek hale getirmi\u015ftir.\u015eimdi gelin bu yenili\u011fi if\u015fa edelim.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nnamespace StaticMethod\r\n{\r\n    class Program\r\n    {\r\n        static void Main(string&#x5B;] args)\r\n        {\r\n            Console.Write(&quot;Static yap\u0131lar\u0131n kullan\u0131m\u0131...&quot;);\r\n        }\r\n    }\r\n}\r\n<\/pre>\n<p>Yukar\u0131da Console.Write() metodunu \u00f6rnek alal\u0131m.Static yap\u0131daki Write() metodunu kullanabilmek i\u00e7in Console s\u0131n\u0131f\u0131ndan .(nokta) ile \u00e7a\u011f\u0131rabiliyoruz.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nusing static System.Console;\r\n\r\nnamespace StaticMethod\r\n{\r\n    class Program\r\n    {\r\n        static void Main(string&#x5B;] args)\r\n        {\r\n            Write(&quot;Static yap\u0131lar\u0131n kullan\u0131m\u0131...&quot;);\r\n        }\r\n    }\r\n}\r\n<\/pre>\n<p>\u015eimdi dikkat ederseniz e\u011fer, &#8220;using static System.Console&#8221; komutu ile System.Console s\u0131n\u0131f\u0131 i\u00e7erisindeki static yap\u0131lara ilgili s\u0131n\u0131f ismini kullanmaks\u0131z\u0131n ula\u015fabilece\u011fimizi belirtiyoruz.G\u00f6rd\u00fc\u011f\u00fcn\u00fcz gibi static yap\u0131daki Write metodunu s\u0131n\u0131f ismini kullanmaya gerek kalmadan \u00e7a\u011f\u0131rabildik.<\/p>\n<p>\u015eimdi ise kendi \u00f6rnek s\u0131n\u0131f\u0131m\u0131zla bu yap\u0131y\u0131 deneyelim.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nusing static System.Console;\r\n\r\nnamespace StaticMethod\r\n{\r\n    class OrnekSinif\r\n    {\r\n        public static void Merhaba()\r\n        {\r\n            Write(&quot;Merhaba&quot;);\r\n            Read();\r\n        }\r\n    }\r\n}\r\n<\/pre>\n<p>Yukar\u0131daki kod blo\u011funu incelerseniz e\u011fer OrnekSinif isminde bir s\u0131n\u0131f olu\u015fturduk ve i\u00e7ine Merhaba isminde de bir static metod yazd\u0131k.Dikkat ederseniz e\u011fer Merhaba isimli static metodu Write metodu ile &#8220;Merhaba&#8221; verisini ekrana yazd\u0131r\u0131rken, Read metoduyla da ekran\u0131 a\u00e7\u0131k tutmaktad\u0131r ve bu metodlar Static Using ile ilgili s\u0131n\u0131flar\u0131n\u0131n isimleri olmaks\u0131z\u0131n \u00e7a\u011fr\u0131lm\u0131\u015ft\u0131r.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nnamespace StaticMethod\r\n{\r\n    class Program\r\n    {\r\n        static void Main(string&#x5B;] args)\r\n        {\r\n            OrnekSinif.Merhaba();\r\n        }\r\n    }\r\n}\r\n<\/pre>\n<p>OrnekSinif isimli s\u0131n\u0131f\u0131m\u0131zdan Merhaba metodu yukar\u0131daki \u015fekilde \u00e7a\u011fr\u0131labilece\u011fi gibi, a\u015fa\u011f\u0131daki \u015fekilde de \u00e7a\u011f\u0131rabiliriz.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nusing static StaticMethod.OrnekSinif;\r\n\r\nnamespace StaticMethod\r\n{\r\n    class Program\r\n    {\r\n        static void Main(string&#x5B;] args)\r\n        {\r\n            Merhaba();\r\n        }\r\n    }\r\n}\r\n<\/pre>\n<p>Olu\u015fturdu\u011funuz \u00f6zel s\u0131n\u0131flar\u0131n static olup olmamas\u0131 fark etmeyecektir.<\/p>\n<p>Evet, g\u00f6rd\u00fc\u011f\u00fcn\u00fcz gibi Static Using&#8217;in espirisi budur.<\/p>\n<p><strong>Peki Extension Metod(Geni\u015fletme Metodu)&#8217;unda durum ne oluyor?<\/strong><\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nnamespace StaticMethod\r\n{\r\n    static class OrnekSinif\r\n    {\r\n        public static void Yaz(this string metin)\r\n        {\r\n            metin += &quot;Gen\u00e7ay Y\u0131ld\u0131z&quot;;\r\n            Write(metin);\r\n            Read();\r\n        }\r\n    }\r\n}\r\n<\/pre>\n<p>OrnekSinif isimli s\u0131n\u0131f\u0131m\u0131z\u0131 static yaparak i\u00e7ine bir Yaz isminde Extension Metod olu\u015fturdum.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nusing static StaticMethod.OrnekSinif;\r\n\r\nnamespace StaticMethod\r\n{\r\n    class Program\r\n    {\r\n        static void Main(string&#x5B;] args)\r\n        {\r\n            OrnekSinif.Yaz(&quot;&quot;);\r\n        }\r\n    }\r\n}\r\n<\/pre>\n<p>\u00d6ncelikle Yaz isimli Extension Metodumuzu bu \u015fekilde \u00e7a\u011f\u0131rabilece\u011fimizi hepiniz biliyorsunuz&#8230;<br \/>\nAmaa&#8230;<br \/>\n<a href=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2015\/08\/Static-Using.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2015\/08\/Static-Using.png\" alt=\"Static Using\" width=\"455\" height=\"186\" class=\"aligncenter size-full wp-image-3153\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2015\/08\/Static-Using.png 455w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2015\/08\/Static-Using-300x123.png 300w\" sizes=\"auto, (max-width: 455px) 100vw, 455px\" \/><\/a><br \/>\n\u015feklinde bir \u00e7a\u011fr\u0131 m\u00fcmk\u00fcn de\u011fildir.<\/p>\n<p>Yaz metodumuz bir Extension Metod yani Geni\u015fleme Metodu oldu\u011fu i\u00e7in olu\u015fturulduklar\u0131 tipteki de\u011ferlerde \u00e7a\u011fr\u0131lmad\u0131klar\u0131 s\u00fcrece tek ba\u015flar\u0131na \u00e7a\u011f\u0131rmak yap\u0131lar\u0131na ters olacakt\u0131r.Lakin direkt olarak s\u0131n\u0131f \u00fczerinden ula\u015f\u0131m imkan\u0131m\u0131z\u0131n olmas\u0131 static bir metod \u00f6zelli\u011fi olmalar\u0131ndan kaynaklanmaktad\u0131r.Aksi halde s\u0131n\u0131f ismi verilmedi\u011fi s\u00fcrece Extension Metodlara olu\u015fturulduklar\u0131 de\u011ferler \u00fczerinden hari\u00e7 ba\u015fka bir yerden ula\u015fmak m\u00fcmk\u00fcn de\u011fildir.<\/p>\n<p>G\u00fcn ge\u00e7tik\u00e7e g\u00fcncellenen .NET yap\u0131lar\u0131 ve deniz derya C# \u00fczerine sonraki 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>Yaz\u0131l\u0131m dillerinin \u00f6nemli yap\u0131lar\u0131ndan birisi olan static \u00fcyeler, yaz\u0131l\u0131msal a\u00e7\u0131dan her ne kadar biz programc\u0131lara kolayl\u0131k sa\u011flasada, .NET mimarlar\u0131da bu \u00fcyelerin kullan\u0131l\u0131\u015f\u0131n\u0131da yaz\u0131sal a\u00e7\u0131dan daha kolay hale getirmi\u015flerdir.Biliyorsunuz ki, bir s\u0131n\u0131f\u0131n nesnesini \u00fcretmeye gerek&#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":[12,720],"tags":[27,724,729,730,728,727],"class_list":["post-3151","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-c-sharp-c","category-c-6-0","tag-c","tag-c-6-0","tag-extension-metod","tag-genisletme-metodu","tag-members","tag-static-using"],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/3151","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=3151"}],"version-history":[{"count":0,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/3151\/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=3151"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/categories?post=3151"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/tags?post=3151"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}