﻿
{"id":6095,"date":"2017-05-25T00:32:30","date_gmt":"2017-05-25T00:32:30","guid":{"rendered":"http:\/\/www.gencayyildiz.com\/blog\/?p=6095"},"modified":"2017-05-25T00:32:30","modified_gmt":"2017-05-25T00:32:30","slug":"cta-operatoru","status":"publish","type":"post","link":"https:\/\/www.gencayyildiz.com\/blog\/cta-operatoru\/","title":{"rendered":"C#&#8217;ta :: Operat\u00f6r\u00fc"},"content":{"rendered":"<div id=\"fb-root\"><\/div>\n<p>Merhaba,<\/p>\n<p>Bir programlama dilinin syntax yap\u0131s\u0131nda keyword olmaks\u0131z\u0131n ta\u015f\u0131d\u0131\u011f\u0131 anlam \u00e7ok daha fazlas\u0131 olan ve bir i\u015flev ortaya koyan sembollere operat\u00f6r diyoruz. Haliyle ilgilendi\u011finiz programlama dilinin bir kod blo\u011funa bakt\u0131\u011f\u0131n\u0131z zaman belki %70&#8217;i okunabilir anahtar s\u00f6zc\u00fck ve kelimelerden ibaretken, belki de %30&#8217;dan fazlas\u0131 operat\u00f6r ve sembollerden olu\u015fmaktad\u0131r. O y\u00fczden bir dilin tam anlam\u0131n\u0131 ortaya koyabilmek i\u00e7in o dilin kulland\u0131\u011f\u0131 t\u00fcm operat\u00f6rlere hakimiyet olduk\u00e7a \u00f6nem arz etmektedir. <\/p>\n<p>C# programlama dili, operat\u00f6r a\u00e7\u0131s\u0131ndan olduk\u00e7a zengin bir yap\u0131ya sahiptir. Ve bu operat\u00f6rlerin bir \u00e7o\u011fu bilindik ve g\u00fcnl\u00fck hayatta kullan\u0131ma yatk\u0131n bir i\u015flevselli\u011fe sahipken, az\u0131nl\u0131k olan bir k\u0131sm\u0131 ise olduk\u00e7a farkl\u0131 ve uzak noktalarda varl\u0131\u011f\u0131n\u0131 hissettirmektedir. \u0130\u015fte bu y\u00fczden bu i\u00e7eri\u011fimizde yap\u0131sal olarak \u00e7ok nadir kar\u015f\u0131la\u015f\u0131lan bir operat\u00f6r olan <strong>::<\/strong> operat\u00f6r\u00fc \u00fczerine konu\u015fuyor olaca\u011f\u0131z.<\/p>\n<p><strong>::<\/strong> operat\u00f6r\u00fc, bir proje i\u00e7erisindeki isim olarak ayn\u0131 ama fiziksel olarak farkl\u0131 olan s\u0131n\u0131flar\u0131n birbirlerine kar\u0131\u015fmalar\u0131n\u0131 engellemek i\u00e7in kullan\u0131lan bir operat\u00f6rd\u00fcr.<\/p>\n<p>\u00d6rnek olarak a\u015fa\u011f\u0131daki kod blo\u011funu inceleyiniz.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nclass MyClass\r\n{\r\n    public void X() =&gt; Console.WriteLine(&quot;Global MyClass&quot;);\r\n}\r\nnamespace Operator\r\n{\r\n    class Program\r\n    {\r\n        static void Main(string&#x5B;] args)\r\n        {\r\n            global::MyClass m = new global::MyClass();\r\n            MyClass m2 = new MyClass();\r\n            m.X();\r\n            m2.X();\r\n            Console.Read();\r\n        }\r\n    }\r\n    class MyClass\r\n    {\r\n        public void X() =&gt; Console.WriteLine(&quot;Local MyClass&quot;);\r\n    }\r\n}\r\n<\/pre>\n<p>Yukar\u0131daki kod blo\u011funa g\u00f6z atarsan\u0131z e\u011fer namespace d\u0131\u015f\u0131ndaki &#8220;MyClass&#8221; s\u0131n\u0131f\u0131 global diye nitelendirebilece\u011fimiz bir s\u0131n\u0131ft\u0131r. Nihayetinde bir namespace&#8217;e ba\u011fl\u0131 olmad\u0131\u011f\u0131ndan dolay\u0131 ilgili proje i\u00e7erisinde t\u00fcm noktalardan eri\u015filebilir bir yap\u0131ya sahiptir. <\/p>\n<p>namespace i\u00e7erisindeki &#8220;MyClass&#8221; s\u0131n\u0131f\u0131 ise local nitelendirilebilir bir s\u0131n\u0131ft\u0131r. Sadece &#8220;Operator&#8221; isimli namespace i\u00e7erisinden eri\u015filebilmektedir. <\/p>\n<p>Bu iki s\u0131n\u0131f isim olarak benzerdir ama fiziksel olarak ayr\u0131 yerlerde tan\u0131mland\u0131klar\u0131 i\u00e7in alenen bir fiziksel \u00e7ak\u0131\u015fma s\u00f6z konusu de\u011fildir. &#8220;Main&#8221; metodu i\u00e7erisine g\u00f6z atarsak e\u011fer &#8220;global&#8221; komutu kullan\u0131lm\u0131\u015ft\u0131r. Bu komut, global olarak tan\u0131mlanm\u0131\u015f &#8220;MyClass&#8221; s\u0131n\u0131f\u0131n\u0131 temsil etmektedir. Bu \u015fekilde iki benzer isimde olan s\u0131n\u0131f\u0131n isimsel \u00e7ak\u0131\u015fmas\u0131n\u0131 engellemi\u015f bulunmaktay\u0131z.<\/p>\n<p><a href=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2017\/04\/Cta-Operat\u00f6r\u00fc.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2017\/04\/Cta-Operat\u00f6r\u00fc.png\" alt=\"C#&#039;ta :: Operat\u00f6r\u00fc\" width=\"133\" height=\"69\" class=\"aligncenter size-full wp-image-6104\" \/><\/a><\/p>\n<p>Bunun d\u0131\u015f\u0131nda farkl\u0131 .dll dosyalar\u0131 yahut k\u00fct\u00fcphanelerde bulunan benzer isimli s\u0131n\u0131flar \u00fczerinde de \u015fu \u015fekilde bir \u00e7al\u0131\u015fma ger\u00e7ekle\u015ftirebiliriz.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nusing Sql = System.Data.SqlClient;\r\n\r\nnamespace Operator\r\n{\r\n    class Program\r\n    {\r\n        static void Main(string&#x5B;] args)\r\n        {\r\n            Sql::SqlConnection con = new Sql::SqlConnection();\r\n            con.ConnectionString = &quot;...&quot;;\r\n            SqlConnection con2 = new SqlConnection();\r\n            con2.BaglantiCumlesi = &quot;...&quot;;\r\n            Console.Read();\r\n        }\r\n    }\r\n    class SqlConnection\r\n    {\r\n        public string BaglantiCumlesi { get; set; }\r\n    }\r\n}\r\n<\/pre>\n<p>Dikkat ederseniz &#8220;System.Data.SqlClient&#8221; k\u00fct\u00fcphanesindeki &#8220;SqlConnection&#8221; s\u0131n\u0131f\u0131 ile &#8220;Operator&#8221; k\u00fct\u00fcphanesindeki &#8220;SqlConnection&#8221; birbirlerine benzer isimde s\u0131n\u0131flar olabilirler. Lakin, yap\u0131sal olarak fiziksel boyutta farkl\u0131 noktalarda bulunduklar\u0131 i\u00e7in &#8220;using Sql = System.Data.SqlClient&#8221; \u015feklinde extern alias tan\u0131mlamas\u0131nda oldu\u011fu gibi &#8220;Sql&#8221; de\u011fi\u015fkeni ile &#8220;System.Data.SqlClient&#8221; k\u00fct\u00fcphanesinin i\u00e7eri\u011fi temsil edilmektedir. Haliyle bu de\u011fi\u015fken <strong>::<\/strong> operat\u00f6r\u00fc arac\u0131l\u0131\u011f\u0131yla kullan\u0131larak ilgili &#8220;SqlConnection&#8221; nesnesinin ilgili k\u00fct\u00fcphaneye ait oldu\u011funu g\u00f6stermektedir.<\/p>\n<p>Anlayaca\u011f\u0131n\u0131z, projemizde ayn\u0131 isimdeki s\u0131n\u0131flar\u0131n birbirlerini ezmesini engellemek ve teoride her iki s\u0131n\u0131fa farkl\u0131 isimler verilerek kullan\u0131lmas\u0131n\u0131 <strong>::<\/strong> operat\u00f6r\u00fc sayesinde sa\u011flamaktay\u0131z.<\/p>\n<p>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>Merhaba, Bir programlama dilinin syntax yap\u0131s\u0131nda keyword olmaks\u0131z\u0131n ta\u015f\u0131d\u0131\u011f\u0131 anlam \u00e7ok daha fazlas\u0131 olan ve bir i\u015flev ortaya koyan sembollere operat\u00f6r diyoruz. Haliyle ilgilendi\u011finiz programlama dilinin bir kod blo\u011funa bakt\u0131\u011f\u0131n\u0131z zaman belki %70&#8217;i okunabilir&#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],"tags":[897,1758,1760,1759,961],"class_list":["post-6095","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-c-sharp-c","tag-operatoru","tag-c-operatoru","tag-extern-alias-tanimlamasi","tag-global","tag-system-data-sqlclient"],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/6095","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=6095"}],"version-history":[{"count":0,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/6095\/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=6095"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/categories?post=6095"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/tags?post=6095"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}