<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>c# get set &#8211; Gökhan Doğru</title>
	<atom:link href="https://www.gokhandogru.net/tag/c-get-set/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.gokhandogru.net</link>
	<description>Sadece yazılımcıyım, format atmayı bilmiyorum.</description>
	<lastBuildDate>Sun, 24 May 2020 21:28:03 +0000</lastBuildDate>
	<language>tr</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.0.1</generator>

<image>
	<url>https://www.gokhandogru.net/wp-content/uploads/2019/12/cropped-Başlıksız-1-1-32x32.png</url>
	<title>c# get set &#8211; Gökhan Doğru</title>
	<link>https://www.gokhandogru.net</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>C# Veri Kapsülleme (Class Encapsulation) {Get/Set Mevzuları}</title>
		<link>https://www.gokhandogru.net/veri-kapsulleme-class-encapsulation/</link>
					<comments>https://www.gokhandogru.net/veri-kapsulleme-class-encapsulation/#respond</comments>
		
		<dc:creator><![CDATA[Gökhan Doğru]]></dc:creator>
		<pubDate>Sat, 21 Dec 2019 11:47:08 +0000</pubDate>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[OOP]]></category>
		<category><![CDATA[c# get set]]></category>
		<category><![CDATA[get set nedir]]></category>
		<category><![CDATA[veri kapsülleme]]></category>
		<guid isPermaLink="false">http://gokhandogru.net/?p=175</guid>

					<description><![CDATA[c# get set nedir?]]></description>
										<content:encoded><![CDATA[
<p>Eyyoo eyyoo herkese selamlar…<br>Bugün sizlere github&#8217;da ki projelere bakınca &#8216;<strong>bu değişkenlere neden sadece int veya string diye bırakmıyoruz?/niye get-set ile uğraşıyoruz?/nedir bu get-set?</strong>&#8221; dedirten veri kapsüllemeyi inceleyip, nasıl kullanılacağını örnekleriyle birlikte sizlere anlatmaya çalışacağım.<br><br><strong>Kapsülleme</strong>, sınıf içindeki değişkenlere erişimi kaldırmak ya da kısıtlamak için kullanılır. Önemli bir değişkeni&nbsp;<strong>public&nbsp;</strong>olarak tanımlamak, değişkene yazılımcı tarafından -bilinçli ya da bilinçsiz- müdahaleye açık hale getirir. Bu da sınıf içindeki metodların çalışmasını olumsuz etkileyebilir. Bu gibi durumların önüne geçmek için kapsülleme tekniği kullanılmaktadır.(<a rel="noreferrer noopener" aria-label=" (yeni sekmede açılır)" href="http://safkaninsan.blogspot.com/" target="_blank">*1</a>)</p>



<p>Yanii.. <strong>Get</strong> ve <strong>Set </strong>metodlarını birer kontrol mekanizması olarak düşünebiliriz . Kod blokları arasında oluşabilecek hataları önceden engelleyen &#8220;hoopp hemşerim nereye&#8221; diyen bodyguard&#8217;ımız 🙂 tabi sadece hataları engellemek için değil, diğer istediğimiz limitlemeleri, koşul kontrollerini de get &amp; set içinden yapabiliriz.<br><br><strong>Bilmemiz gereken bilgiler;<br></strong>• get : Kapsül içindeki verileri okumamız için çalışan metod. (Get -&gt; <strong>Get</strong>ir olarak aklınızda kalabilir)<br>• set :  Kapsüle veri göndereceğimiz zaman kullanacağımız metod.<br>• value : Kapsüle dışardan gelen veriyi incelemek veya atama yapacağımız zaman kullanacağımız anahtar kelime,<br>• return : Geriye bir değer döndürmemize yardımcı olan anahtar kelime.<br><br><strong>Örneğin nerelerde Get&amp;Set kullanabiliriz?</strong><br>&#8211; Kimlik numarasına harf ataması yapılmasını engelleme durumunda,<br>&#8211; Belirli bir kritere uygun olup olmamasını kontrol ettirme gibi durumlarla örneklendirebiliriz..<br><br><strong>Şimdi birlikte kısa bir örnek yapalım;<br></strong>Hedefimiz şu :  Kullanıcıdan bir TC kimlik numarası isteyeceğiz ve TC numarasını tekrar çağırdığımızda ilk 4 hanesini görüp geri kalanını yıldız (*) ile gizleyeceğiz. <br>(benzeri örnek: 16haneli kredi kartı bilgisinin ilk 4 hanesini görüp kalanının *** olması gibi..)<br><br>İlk önce <strong>Personel.cs</strong> olarak bir class açıyorum ve malzemelerimi yavaş yavaş ekliyorum;<br>1-) _tckimlikNumarasi adında uzaklardan erişimi olmayan bir private değişken oluşturuyorum. <br>2-) tckimlikNumarasi adında her yerden erişilebilen, gelen veriyi _tckimlikNumarasi &#8216;e aktaracak bir kapsül oluşturuyorum.</p>



<pre class="wp-block-code"><code>
public class Personel
    { 
        private string _tckimliknumarasi; 
        public string tckimlikNumarasi{ get; set; }  
    }</code></pre>



<p>*  <strong>_tckimliknumarasi </strong>olarak açılan değişkenim <strong>private </strong>olduğu için diğer classlardan erişimi <strong>olmayacaktır</strong>.  Veri gönderdiğim zaman bütün iş yükü <strong>tckimlikNumarasi</strong> &#8216;nin <strong>set </strong>bloğu arasında olacaktır. </p>



<p>Şimdi projeye geri dönersek; İlk önce kullanıcıdan gelen TC numarasının boş olup olmadığını daha sonrasında da 11 haneli olup olmadığını kontrol edeceğiz. Eğer kriterlere uyuyorsa hata mesajım çıkacak, uymuyorsa direk <strong>else </strong>bölümüne geçip <strong>_tckimliknumarasi </strong>değişkenine verimi atayacağım.  </p>



<pre class="wp-block-code"><code>
public string tckimlikNumarasi
        {
            get { return _tckimliknumarasi;  }
            set
            {
                if (String.IsNullOrEmpty(value) || value.Length != 11) 
                {
                    Console.WriteLine("Lütfen 11 haneli TC numaranızı giriniz!");
                }
                else
                {
                    _tckimliknumarasi = value;
                }
            }
        }</code></pre>



<p>* Şimdi <strong>set </strong>tarafımdaki koşullarım bitti, hemen <strong>get </strong>tarafını kodlamaya başlıyorum. <br><br><strong>Get </strong>tarafında ki amacım neydi? <strong>tckimlikNumarasi</strong> çağırdığım zaman 11 hanenin ilk 4hanesini gösterip 7haneyi yıldız yapmaktı&#8230; </p>



<p>Hatırlarsanız <strong>string </strong>değerlerin belirli bir aralığını almak istiyorsak <strong>Substring </strong>kullanıyorduk. O yüzden <strong>_tckimliknumarasi </strong>değişkenime <strong>0,4 Substring</strong>i uygulayıp sonuna da yıldızlarımı ekledim mi istediğim her şey olmuş olacak 🙂</p>



<pre class="wp-block-code"><code> 
 get
 {  
     _tckimliknumarasi = _tckimliknumarasi.Substring(0, 4) + "*******";
     return _tckimliknumarasi;
 }</code></pre>



<p>Personel.cs tarafım hazır,<strong> Program.cs</strong> tarafına geçip <strong>per </strong>adında Personel classını üretiyorum.</p>



<pre class="wp-block-code"><code> Personel per = new Personel();</code></pre>



<p>Artık işim personele tc numarası atamak ve tc numarasını çağırmak&#8230;</p>



<pre class="wp-block-code"><code>
 Personel per = new Personel();
 per.tckimlikNumarasi = "62411867016";

 Console.WriteLine(per.tckimlikNumarasi);</code></pre>



<p>Kodumuzu şimdi inceleyelim bakalım;</p>



<p><img width="750" height="234" class="wp-image-268" style="width: 750px;" src="http://gokhandogru.net/wp-content/uploads/2019/12/Screenshot_1.png" alt="" srcset="https://www.gokhandogru.net/wp-content/uploads/2019/12/Screenshot_1.png 750w, https://www.gokhandogru.net/wp-content/uploads/2019/12/Screenshot_1-300x94.png 300w" sizes="(max-width: 750px) 100vw, 750px" /></p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.gokhandogru.net/veri-kapsulleme-class-encapsulation/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
