﻿
{"id":275,"date":"2012-03-21T00:34:21","date_gmt":"2012-03-21T00:34:21","guid":{"rendered":"http:\/\/www.gencayyildiz.com\/blog\/?p=275"},"modified":"2012-05-28T12:59:35","modified_gmt":"2012-05-28T12:59:35","slug":"cta-indexer-yapilari","status":"publish","type":"post","link":"https:\/\/www.gencayyildiz.com\/blog\/cta-indexer-yapilari\/","title":{"rendered":"C# Indexer Yap\u0131lar\u0131"},"content":{"rendered":"<div id=\"fb-root\"><\/div>\n<p>Bu yaz\u0131mda C#&#8217;ta indexer yap\u0131lar\u0131ndan bahsedece\u011fim.\u00d6ncelikle yap\u0131n\u0131n ne oldu\u011fundan bahsedeyim.Asl\u0131nda \u00e7o\u011fu yerde kulland\u0131\u011f\u0131m\u0131z yap\u0131lard\u0131r.Dizilerde indeks numaras\u0131na g\u00f6re \u00e7al\u0131\u015f\u0131rken,SqlDataReader nesnesinde kolonlar\u0131 \u00e7ekerken ya da bir koleksiyonda elemanlar\u0131m\u0131za ula\u015f\u0131rken kullan\u0131r\u0131z.Mesela SqlDataReader&#8217;dan \u00f6rnek vereyim.SqlDataReader dr ad\u0131nda bir nesnemiz olsun ve bu SqlDataReader&#8217;a \u00e7ekilmi\u015f verilerden istedi\u011fim kolona nas\u0131l ulabilirim.dr[&#8220;kolonadi&#8221;] \u015feklinde.\u0130\u015fte bu yap\u0131lar\u0131 olu\u015fturmay\u0131 g\u00f6sterece\u011fim.<br \/>\n<!--more--><br \/>\n<span style=\"color: #339966;\"><strong>INDEXER<\/strong><\/span><br \/>\nBildi\u011fimiz propertyler gibi get ve set bloklar\u0131 vard\u0131r.Class i\u00e7indeki bir dizi ya da koleksiyon yap\u0131s\u0131n\u0131n elemanlar\u0131n\u0131 vermeye ya da set etmeye yararlar.<br \/>\n\u015eimdi a\u015fa\u011f\u0131daki \u00f6rne\u011fi inceleyiniz.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n    class Indexer\r\n    {\r\n        int&#x5B;] sayilar = new int&#x5B;5];\r\n        public int this&#x5B;int index]\r\n        {\r\n            get\r\n            {\r\n                return sayilar&#x5B;index];\r\n            }\r\n            set\r\n            {\r\n                sayilar&#x5B;index] = value;\r\n            }\r\n        }\r\n    }\r\n<\/pre>\n<p>Yukar\u0131daki kodlar\u0131 incelerseniz e\u011fer, sayilar ad\u0131nda int dizisi tan\u0131mlanm\u0131\u015ft\u0131r ve 5 elemanl\u0131d\u0131r.(Ben sadece yap\u0131y\u0131 teorik olarak g\u00f6steriyorum.Basit ama anla\u015f\u0131l\u0131r.)Indexer yap\u0131s\u0131 propertylere \u00e7ok benzer.Tek fark this[] s\u00f6zc\u00fc\u011f\u00fcndedir.Indexer\u0131m\u0131z\u0131n parametresine g\u00f6nderdi\u011fimiz int tipindeki de\u011fer, sayilar dizisinde o de\u011fere kar\u015f\u0131l\u0131k gelen indeks numaral\u0131 elemana gidecektir.Gerekli get ve set i\u015flemini o indekste yapacakt\u0131r.Indexer&#8217;a isim vermeyiz.Bu \u015fekilde olu\u015fturulurlar.<br \/>\n\u015eimdi kullan\u0131m\u0131n\u0131 g\u00f6relim.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n            Indexer deneme = new Indexer();\r\n            deneme&#x5B;0] = 3;\r\n            deneme&#x5B;3] = 4;\r\n            MessageBox.Show(deneme&#x5B;0] + &quot; &quot; + deneme&#x5B;3]);\r\n<\/pre>\n<p>Yukardaki kodu izah edelim.Indexer s\u0131n\u0131f\u0131ndan deneme referans\u0131 yarat\u0131l\u0131yor ve bu referansa Indexer nesnesi ba\u011flan\u0131yor.<br \/>\ndeneme[] yazd\u0131\u011f\u0131m\u0131z zaman, k\u00f6\u015feli parantez i\u00e7ine girilen say\u0131 Indexer s\u0131n\u0131f\u0131nda olu\u015fturdu\u011fumuz Indexer\u0131m\u0131za gidiyor ve oradaki sayilar dizininde, o de\u011fere denk gelen indeks numaral\u0131 eleman\u0131 se\u00e7iyor.deneme[0] = 3 ve deneme[3] = 4 yazd\u0131\u011f\u0131m zaman, set blo\u011funda bu veriler se\u00e7ilen elemanlara aktar\u0131l\u0131yor.Bunlar\u0131 okumaya kalkt\u0131\u011f\u0131m\u0131zda da get blo\u011fu \u00e7al\u0131\u015f\u0131yor.Ve se\u00e7ilen elemanlar\u0131n de\u011ferleri g\u00f6nderiliyor.(\u0130sterseniz di\u011fer indeksleride doldurabilirsiniz.)<\/p>\n<p>Indexer yap\u0131lar\u0131 Overload edilebilirler.Tek \u015fart parametreleri farkl\u0131 olmal\u0131d\u0131r.Bunuda a\u015fa\u011f\u0131daki kodlarla \u00f6rnekleyelim.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n        public int this&#x5B;int index]\r\n        { }\r\n        public int this&#x5B;string elemanadi]\r\n        { }\r\n        public string this&#x5B;double deneme]\r\n        { }\r\n<\/pre>\n<p>Yukar\u0131da g\u00f6rd\u00fc\u011f\u00fcn\u00fcz gibi bir s\u0131n\u0131f\u0131n indexer\u0131n\u0131 overload yapt\u0131m.<br \/>\n\u015eimdilik bu kadar.Bir sonraki yaz\u0131mda g\u00f6r\u00fc\u015fmek \u00fczere.<br \/>\n\u0130yi \u00e7al\u0131\u015fmalar.<\/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>Bu yaz\u0131mda C#&#8217;ta indexer yap\u0131lar\u0131ndan bahsedece\u011fim.\u00d6ncelikle yap\u0131n\u0131n ne oldu\u011fundan bahsedeyim.Asl\u0131nda \u00e7o\u011fu yerde kulland\u0131\u011f\u0131m\u0131z yap\u0131lard\u0131r.Dizilerde indeks numaras\u0131na g\u00f6re \u00e7al\u0131\u015f\u0131rken,SqlDataReader nesnesinde kolonlar\u0131 \u00e7ekerken ya da bir koleksiyonda elemanlar\u0131m\u0131za ula\u015f\u0131rken kullan\u0131r\u0131z.Mesela SqlDataReader&#8217;dan \u00f6rnek vereyim.SqlDataReader dr ad\u0131nda bir&#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":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[12],"tags":[166],"class_list":["post-275","post","type-post","status-publish","format-standard","hentry","category-c-sharp-c","tag-indexer"],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/275","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=275"}],"version-history":[{"count":0,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/275\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/media?parent=275"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/categories?post=275"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/tags?post=275"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}