﻿
{"id":240,"date":"2012-03-19T21:57:48","date_gmt":"2012-03-19T21:57:48","guid":{"rendered":"http:\/\/www.gencayyildiz.com\/blog\/?p=240"},"modified":"2012-05-28T13:00:37","modified_gmt":"2012-05-28T13:00:37","slug":"cta-class-extra-bilgiler","status":"publish","type":"post","link":"https:\/\/www.gencayyildiz.com\/blog\/cta-class-extra-bilgiler\/","title":{"rendered":"C# Class Extra Bilgiler"},"content":{"rendered":"<div id=\"fb-root\"><\/div>\n<p>Bu yaz\u0131mda C#&#8217;ta Class yap\u0131s\u0131na devam edece\u011fim.\u00d6nceki yaz\u0131lar\u0131m aras\u0131nda Class s\u0131n\u0131f\u0131na giri\u015fte bulunmu\u015ftum.Bu yaz\u0131da ise,\u00f6ncekilerde bahsetmedi\u011fim teferruatlar mevcuttur.\u00d6nceki yaz\u0131lara \u015fu linklerden ula\u015fabilirsiniz.<br \/>\n<a href=\"http:\/\/www.gencayyildiz.com\/blog\/cta-class-yapisi-1\/\" target=\"_blank\"> C#&#8217;ta Class Yap\u0131s\u0131 &#8211; 1<\/a><br \/>\n<a href=\"http:\/\/www.gencayyildiz.com\/blog\/cta-class-yapisi-3\/\" target=\"_blank\"> C#&#8217;ta Class Yap\u0131s\u0131 &#8211;\u00a02<\/a><br \/>\n<!--more--><br \/>\nBu yaz\u0131y\u0131 okumaya ba\u015flamadan \u00f6nce yukardaki yaz\u0131lar\u0131 s\u0131ras\u0131yla g\u00f6zden ge\u00e7irmenizi tavsiye ederim.<br \/>\n\u015eimdi ClassExtra isimli bir class dosyas\u0131 olu\u015fturuyorum ve i\u00e7ine iki property ekliyorum.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n    class ClassExtra\r\n    {\r\n        int OdaSayisi;\r\n\r\n        public int OdaSayisi1\r\n        {\r\n            get { return OdaSayisi; }\r\n            set { OdaSayisi = value; }\r\n        }\r\n        public string Semt { get; set; }\r\n    }\r\n<\/pre>\n<p>\u015eimdi bu class \u00fczeride \u00e7al\u0131\u015fma yaparak baz\u0131 konular\u0131 izah etmeye \u00e7al\u0131\u015faca\u011f\u0131m.<br \/>\n<span style=\"color: #ff0000;\"><strong>this anahtar s\u00f6zc\u00fc\u011f\u00fcn\u00fcn kullan\u0131m bi\u00e7imleri;<\/strong><\/span><br \/>\nBildi\u011fimiz gibi this anahtar s\u00f6zc\u00fc\u011f\u00fc &#8220;bu classta&#8221; demektir.Yani o an \u00e7al\u0131\u015ft\u0131\u011f\u0131m\u0131z class\u0131 ifade etmektedir.<br \/>\n\u015eimdi ben ClassExtra class\u0131na iki constructor yazaca\u011f\u0131m.Biri bo\u015f constructor,biride ClassExtra class\u0131ndaki propertylere parametrelerinden de\u011fer aktaran constructor.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n        public ClassExtra()\r\n        {\r\n\r\n        }\r\n        public ClassExtra(int odaSayisi, string Semt)\r\n        {\r\n            this.OdaSayisi1 = odaSayisi;\r\n            this.Semt = Semt;\r\n        }\r\n<\/pre>\n<p>\u015eimdi ben ClassExtra nesne = new ClassExtra() \u015feklinde bir nesne olu\u015fturursam, ClassExtra s\u0131n\u0131f\u0131n\u0131n bo\u015f constructor\u0131 \u00e7al\u0131\u015facakt\u0131r.Bu \u015fekilde olunca varsay\u0131lan(default) constructor devre d\u0131\u015f\u0131 oldu\u011fundan dolay\u0131 propertylere varsay\u0131lan de\u011ferler aktar\u0131lamayacakt\u0131r.Ben bu \u015fekilde nesne olu\u015fturdu\u011fum da parametre alan nesneyi \u00e7al\u0131\u015ft\u0131rmak istiyorsam e\u011fer a\u015fa\u011f\u0131daki gibi \u00e7al\u0131\u015fmam laz\u0131m.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n        public ClassExtra():this(3,&quot;Ayd\u0131nl\u0131kevler&quot;)\r\n        {\r\n\r\n        }\r\n        public ClassExtra(int odaSayisi, string Semt)\r\n        {\r\n            this.OdaSayisi1 = odaSayisi;\r\n            this.Semt = Semt;\r\n        }\r\n<\/pre>\n<p>Yukarda ne oldu\u011funu izah edeyim.ClassExtra nesne=new ClassExtra() \u015feklinde nesne olu\u015fturdu\u011fumuz zaman bo\u015f constructor \u00e7al\u0131\u015facakt\u0131r.public ClassExtra():this(3,&#8221;Ayd\u0131nl\u0131kevler&#8221;) kadar okuyup, kendi scopeuna girmeden o parametreli constructor\u0131 bulacak ve ona gidecektir.Sonra parametrelerin de\u011ferlerini propertylere set edecek.Parametreli constructordan \u00e7\u0131k\u0131nca,bo\u015f constructora geri gelecek ve kald\u0131\u011f\u0131 yerden bo\u015f constructor\u0131n scopeuna girecektir.<br \/>\n\u015eimdi ClassExtra s\u0131n\u0131f\u0131ndan bo\u015f constructor \u00e7al\u0131\u015facak \u015fekilde bir nesne olu\u015ftural\u0131m.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n            ClassExtra nesne = new ClassExtra();\r\n            this.Text = nesne.OdaSayisi1 + &quot; &quot; + nesne.Semt;\r\n<\/pre>\n<p>Yukardaki kodlar derlendi\u011fi zaman formun ba\u015fl\u0131\u011f\u0131nda &#8220;3 Ayd\u0131nl\u0131kevler&#8221; yazd\u0131\u011f\u0131n\u0131 g\u00f6receksiniz.Bo\u015f constructor kulland\u0131\u011f\u0131m\u0131z halde this komutu sayesinde parametreli constructor\u0131 \u00e7al\u0131\u015ft\u0131rabildik.<\/p>\n<hr \/>\n<p>Constructorlar private yap\u0131ld\u0131\u011f\u0131 zaman o constructora eri\u015filemez.Sadece bu classta eri\u015filebilir.<\/p>\n<hr \/>\n<p>Classlar i\u00e7ine, o class tipinden nesne d\u00f6nd\u00fcren static metodlar da yaz\u0131labilir.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n        public static ClassExtra NesneVer()\r\n        {\r\n            return new ClassExtra();\r\n        }\r\n<\/pre>\n<p><span style=\"color: #ff0000;\"><strong>Static Constructor<\/strong><\/span><\/p>\n<ul>\n<li>Constructorlar da static olarak i\u015faretlenebilirler.<\/li>\n<li>public,private gibi eri\u015fim belirleyicisi ALAMAZLAR.<\/li>\n<li>Parametre ALAMAZLAR.<\/li>\n<li>Bir classtan bir nesne yarat\u0131l\u0131r yarat\u0131lmaz,di\u011fer t\u00fcm constructorlardan \u00f6nce \u00e7al\u0131\u015f\u0131rlar.<\/li>\n<li>Sadece bir kere \u00e7al\u0131\u015f\u0131rlar.Yani bu classtan ilk nesne yarat\u0131ld\u0131\u011f\u0131nda t\u00fcm di\u011fer constructorlardan \u00f6nce \u00e7al\u0131\u015facak,ikinci nesne yarat\u0131ld\u0131\u011f\u0131nda \u00e7al\u0131\u015fmayacakt\u0131r.<\/li>\n<li>Sadece bir classtan nesne yarat\u0131ld\u0131\u011f\u0131nda de\u011fil,o class i\u00e7indeki herhangi bir static yap\u0131 ilk kullan\u0131ld\u0131\u011f\u0131nda da \u00e7al\u0131\u015f\u0131r.<\/li>\n<li>Kullan\u0131m ama\u00e7lar\u0131 genellikle , class i\u00e7inde static yap\u0131lara ilk de\u011ferlerini vermektir.<\/li>\n<li>Sabitler(const) kendili\u011finden static yap\u0131lard\u0131r.Bir class i\u00e7inde sabit bir alan tan\u0131mlan\u0131yorsa ba\u015f\u0131na static dememize gerek yok.Do\u011fal olarak statictirler.E\u011fer o class i\u00e7inde sabit \u00e7al\u0131\u015ft\u0131r\u0131l\u0131rsa e\u011fer static oldu\u011fundan dolay\u0131, sabit \u00e7al\u0131\u015fmadan static constructor \u00e7al\u0131\u015facakt\u0131r.<\/li>\n<\/ul>\n<div>NOT: Static yap\u0131lar i\u00e7inde static olmayan yap\u0131lar kullan\u0131lamaz.<\/div>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\npublic static int sayi;\r\nstatic ClassExtra()\r\n {\r\n  sayi = 3;\r\n }\r\n<\/pre>\n<p>Static bir yap\u0131 i\u00e7inde illaki static olmayan bir yap\u0131 kullanmak istiyorsan\u0131z, onu ancak ve ancak nesne \u00fczerinden yapabilirsiniz.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n        public static void Deneme(ClassExtra nesne)\r\n        {\r\n            nesne.Semt = &quot;Ke\u00e7i\u00f6ren&quot;;\r\n        }\r\n<\/pre>\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 Class yap\u0131s\u0131na devam edece\u011fim.\u00d6nceki yaz\u0131lar\u0131m aras\u0131nda Class s\u0131n\u0131f\u0131na giri\u015fte bulunmu\u015ftum.Bu yaz\u0131da ise,\u00f6ncekilerde bahsetmedi\u011fim teferruatlar mevcuttur.\u00d6nceki yaz\u0131lara \u015fu linklerden ula\u015fabilirsiniz. C#&#8217;ta Class Yap\u0131s\u0131 &#8211; 1 C#&#8217;ta Class Yap\u0131s\u0131 &#8211;\u00a02<!-- 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":[],"class_list":["post-240","post","type-post","status-publish","format-standard","hentry","category-c-sharp-c"],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/240","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=240"}],"version-history":[{"count":0,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/240\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/media?parent=240"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/categories?post=240"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/tags?post=240"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}