﻿
{"id":144,"date":"2012-03-11T21:27:03","date_gmt":"2012-03-11T21:27:03","guid":{"rendered":"http:\/\/www.gencayyildiz.com\/blog\/?p=144"},"modified":"2012-05-28T13:03:25","modified_gmt":"2012-05-28T13:03:25","slug":"cta-class-yapisi-1","status":"publish","type":"post","link":"https:\/\/www.gencayyildiz.com\/blog\/cta-class-yapisi-1\/","title":{"rendered":"C# Class Yap\u0131s\u0131-1"},"content":{"rendered":"<div id=\"fb-root\"><\/div>\n<p>Bu yaz\u0131m\u0131zda C#&#8217;ta Class yap\u0131s\u0131ndan bahsedece\u011fim.S\u0131n\u0131flar nesne y\u00f6nelimli programlaman\u0131n en \u00f6nemli \u00f6\u011fesidir.S\u0131n\u0131flar sayesinde program\u0131m\u0131z\u0131 par\u00e7alara b\u00f6l\u00fcp daha rahat \u00e7al\u0131\u015fabiliriz.Class yap\u0131lar\u0131 i\u00e7inde metodlar,\u00f6zellikler,field de\u011fi\u015fkenler vs vs gibi yap\u0131lar bulunabilir.<br \/>\n<!--more-->Genel olarak bir class yap\u0131s\u0131 sunmak istiyorum.<br \/>\nA\u015fa\u011f\u0131da,i\u00e7inde 4 \u00f6zellik ve 3 tanede metod bulunan bir \u00f6rnek class yap\u0131s\u0131n\u0131 inceleyiniz.Ondan sonra derinlemesine mevzuya girelim.<\/p>\n<hr \/>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n      class ClassCalisma\r\n    {\r\n        string adi;\r\n        private string soyadi;\r\n        public int yasi;\r\n        public DateTime dogumtarihi;\r\n        int Sayi()\r\n        {\r\n            return 3;\r\n        }\r\n        private int topla()\r\n        {\r\n            return 3 + 5;\r\n        }\r\n        public void merhaba()\r\n        {\r\n            System.Windows.Forms.MessageBox.Show(&quot;Merhaba&quot;);\r\n        }\r\n    }\r\n<\/pre>\n<hr \/>\n<p>Class i\u00e7inde \u00f6zellikler bu \u015fekilde tan\u0131mlan\u0131rsa e\u011fer d\u0131\u015fardan her t\u00fcrl\u00fc m\u00fcdahaleye maruz kalabiliyorlar.Bunun \u00f6nlemini Propertyler sayesinde alabilir.Classlarda kulland\u0131\u011f\u0131m\u0131z de\u011fi\u015fkenlere field denir.\u015eimdi bu konuyu inceleyelim.<\/p>\n<p><strong>FIELD<\/strong><br \/>\nClasslar i\u00e7inde kulland\u0131\u011f\u0131m\u0131z de\u011fi\u015fkenlerdir.Class i\u00e7indeki fieldlar,class \u0131n kullanaca\u011f\u0131 de\u011ferleri tutarlar.Genellikle private olarak tan\u0131mlan\u0131rlar(Bunun sebebi d\u0131\u015fardan direk m\u00fcdahale olmas\u0131n\u0131 engellemektir.Private olan bir de\u011fi\u015fkene d\u0131sardan ula\u015fman\u0131n m\u00fcmk\u00fcn olmad\u0131\u011f\u0131n\u0131 biliyoruz.Fielddaki de\u011feri hem kontroll\u00fc bir \u015fekilde kullanabilmek i\u00e7in hemde d\u0131\u015far\u0131ya a\u00e7abilmek i\u00e7in Propertyler kullan\u0131l\u0131r.)Propertylerdeki set blo\u011fu ile field a de\u011fer aktar\u0131l\u0131r,get blo\u011fu ile fielddaki de\u011fer d\u0131\u015far\u0131ya g\u00f6nderilebilir.<\/p>\n<p>\u015eimdi class i\u00e7inde bir de\u011fi\u015fken(Field) olu\u015ftural\u0131m.<\/p>\n<hr \/>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nstring adi;\r\n<\/pre>\n<hr \/>\n<p>\u015eimdi bu field \u00fczerinden propertyler olu\u015fturaca\u011f\u0131z.<br \/>\n<strong>1.Property tipi,<\/strong><br \/>\nE\u011fer property i\u00e7indeki field \u0131 \u00e7e\u015fitli komutlar e\u015fli\u011finde kontrol alt\u0131nda tutacaksan\u0131z bu property tipini kullan\u0131n\u0131z.<\/p>\n<hr \/>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\npublic string Adi\r\n        {\r\n            get { return adi; }\r\n            set { adi = value; }\r\n        }\r\n<\/pre>\n<hr \/>\n<p>Yukar\u0131daki yap\u0131da adi field\u0131m\u0131za property yazm\u0131\u015f olduk.Property&#8217;mizin ad\u0131 &#8220;Adi&#8221; d\u0131r.Art\u0131k bu classtan nesne olu\u015fturdu\u011fumuz zaman bu adi field\u0131n\u0131 de\u011fil,Adi propertysini kullanaca\u011f\u0131z.set blo\u011fu sayesinde adi field\u0131na verilen de\u011fer g\u00f6nderilecektir.get blo\u011fu sayesinde adi field\u0131na g\u00f6nderilen de\u011fer d\u0131\u015far\u0131dan okunabilecektir.Get ve Set bloklar\u0131n\u0131n scopelar\u0131 aras\u0131na if,for,metod vs. gibisinden her t\u00fcrl\u00fc \u015feyi yazabilirsiniz.<br \/>\nNot:Bu propertyi isterseniz elinizlede yazabilirsiniz.Kolayl\u0131k olmas\u0131 a\u00e7\u0131s\u0131ndan yazd\u0131\u011f\u0131n\u0131z field\u0131n yan\u0131na imleci yerle\u015ftirerek &#8220;CTRL+R+E&#8221; kombinasyonunu kullan\u0131rsan\u0131z e\u011fer field otomatik olarak olu\u015facakt\u0131r.<\/p>\n<p>Bu propertyi write only(sadece yaz\u0131l\u0131r) ya da read only(sadece okunur) yapmak i\u00e7in istedi\u011fimiz blo\u011fu iki taksim i\u015faretiyle kapatmam\u0131z yeterli olacakt\u0131r.<\/p>\n<hr \/>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n public string Adi\r\n        {\r\n           \/\/ get { return adi; }\r\n            set { adi = value; }\r\n        }\r\n<\/pre>\n<hr \/>\n<p>E\u011fer get blo\u011funu kapat\u0131rsak sadece yaz\u0131l\u0131r olur.<\/p>\n<hr \/>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n public string Adi\r\n        {\r\n            get { return adi; }\r\n           \/\/ set { adi = value; }\r\n        }\r\n<\/pre>\n<hr \/>\n<p>E\u011fer set blo\u011funu kapat\u0131rsak sadece okunur olur.<br \/>\n<strong>2.Property tipi,<\/strong><br \/>\nE\u011fer field\u0131n\u0131z i\u00e7indeki veriyi belirli kontrol alt\u0131nda tutmayacaksan\u0131z,d\u0131\u015far\u0131dan gelen veriyi oldu\u011fu gibi fielda set edecekseniz ve oldu\u011fu gibi return edecekseniz a\u015fa\u011f\u0131daki property tipini kullan\u0131n\u0131z.<\/p>\n<p>Bu propertyde kullanmak i\u00e7in field\u0131 \u00f6nceden yaz\u0131p sonra property i yazmam\u0131za gerek yok.<\/p>\n<hr \/>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\npublic string soyadi{ get; set; } \/*Bu property bir nevi\r\nfield \u00fczerine yaz\u0131l\u0131yor.*\/\r\n<\/pre>\n<hr \/>\n<p>Yukardaki yap\u0131da field\u0131m\u0131z\u0131 d\u0131sar\u0131ya hi\u00e7 bir kontrol alt\u0131nda tutmadan a\u00e7\u0131yoruz.Bu tipteki propertydeki get ve set bloklar\u0131 i\u00e7erisine hi\u00e7 bir \u015fey yazma hakk\u0131m\u0131z yok.<\/p>\n<p>Bu propertyi ellede yazabiliriz.Kolayl\u0131k olmas\u0131 a\u00e7\u0131s\u0131ndan &#8220;prop&#8221; yaz\u0131p iki kere taba basarsak kapa taslak \u015fablonu olu\u015facakt\u0131r.<\/p>\n<p>Bu property tipinde sadece okunur ya da yaz\u0131l\u0131r yapmak i\u00e7in iki taksimle bloklar\u0131 kapatmamal\u0131y\u0131z.Hangi blo\u011fu kapatmak istiyorsak ba\u015f\u0131na private yazmam\u0131z yeterli olacakt\u0131r.<\/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\u0131m\u0131zda C#&#8217;ta Class yap\u0131s\u0131ndan bahsedece\u011fim.S\u0131n\u0131flar nesne y\u00f6nelimli programlaman\u0131n en \u00f6nemli \u00f6\u011fesidir.S\u0131n\u0131flar sayesinde program\u0131m\u0131z\u0131 par\u00e7alara b\u00f6l\u00fcp daha rahat \u00e7al\u0131\u015fabiliriz.Class yap\u0131lar\u0131 i\u00e7inde metodlar,\u00f6zellikler,field de\u011fi\u015fkenler vs vs gibi yap\u0131lar bulunabilir.<!-- 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":[68,69,61,70],"class_list":["post-144","post","type-post","status-publish","format-standard","hentry","category-c-sharp-c","tag-class","tag-field","tag-metod","tag-property"],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/144","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=144"}],"version-history":[{"count":0,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/144\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/media?parent=144"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/categories?post=144"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/tags?post=144"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}