<?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>BLOCRACY &#187; constructor overloading</title>
	<atom:link href="http://www.blocracy.com/tag/constructor-overloading/feed" rel="self" type="application/rss+xml" />
	<link>http://www.blocracy.com</link>
	<description>no like other</description>
	<lastBuildDate>Thu, 24 Jun 2010 20:23:08 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>C# ile kullanıcı tanımlı tip geliştirmek ve Operator Overloading</title>
		<link>http://www.blocracy.com/c-ile-kullanici-tanimli-tip-gelistirmek-ve-operator-overloading</link>
		<comments>http://www.blocracy.com/c-ile-kullanici-tanimli-tip-gelistirmek-ve-operator-overloading#comments</comments>
		<pubDate>Wed, 03 Feb 2010 21:30:04 +0000</pubDate>
		<dc:creator>Kerem Bekman</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[constructor overloading]]></category>
		<category><![CDATA[OOP]]></category>
		<category><![CDATA[operator overloading]]></category>
		<category><![CDATA[rasyonel sayılar]]></category>

		<guid isPermaLink="false">http://www.blocracy.com/?p=284</guid>
		<description><![CDATA[C# veya .NET Framework çatısı altındaki herhangi bir dilde, kendi kullanım alanınıza özel tipler üretebilir. Size özel tipi operatör işlemlerine uyarlayabilirsiniz.
Bu çalışmamız için Nesne Yönelimli Programlamlarının en temel özelliklerinden olan &#8220;Constructor Overloading&#8221; özelliğini sık kullanıcaz. Makale öncesine Constructor Overloading için bu adrese göz atmanızı öneririm.
Kendimize özel yapacağımız tip rasyonel sayılar ve kendi işlemlerini destekleyen bir [...]]]></description>
			<content:encoded><![CDATA[<p>C# veya .NET Framework çatısı altındaki herhangi bir dilde, kendi kullanım alanınıza özel tipler üretebilir. Size özel tipi operatör işlemlerine uyarlayabilirsiniz.</p>
<p>Bu çalışmamız için Nesne Yönelimli Programlamlarının en temel özelliklerinden olan &#8220;Constructor Overloading&#8221; özelliğini sık kullanıcaz. Makale öncesine Constructor Overloading için <a href="http://www.codeproject.com/KB/dotnet/ConstructorsInCSharp.aspx" target="_blank">bu</a> adrese göz atmanızı öneririm.</p>
<p>Kendimize özel yapacağımız tip rasyonel sayılar ve kendi işlemlerini destekleyen bir tip olacak.</p>
<p>Yapabileceğimiz işlemleri kısaca özetlersek</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">ras r1 = new ras<span class="br0">&#40;</span><span class="st0">&quot;1/2&quot;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="co1">// String ile Rasyonel Sayı Oluşturabilelim</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">ras r2 = new ras<span class="br0">&#40;</span><span class="nu0">6</span>,<span class="nu0">8</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li2">
<div class="de2"><span class="co1">// Int ile Rasyonel Sayı Oluşturabilelim</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">ras r3 = new ras<span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="co1">// Ve Değer atamadan tanımlayabilelim..</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li2">
<div class="de2"><span class="co1">//Değer atama işlemi</span></div>
</li>
<li class="li1">
<div class="de1">r3.<span class="me1">pay</span> = <span class="nu0">4</span>;</div>
</li>
<li class="li1">
<div class="de1">r3.<span class="me1">payda</span> = <span class="nu0">5</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">ras r4 = r1 + r2; <span class="co1">// Operator Overloading</span></div>
</li>
<li class="li2">
<div class="de2">r4.<span class="me1">topla</span><span class="br0">&#40;</span><span class="st0">&quot;1/5&quot;</span><span class="br0">&#41;</span>; <span class="co1">// String ile özel toplama</span></div>
</li>
<li class="li1">
<div class="de1">r4.<span class="me1">topla</span><span class="br0">&#40;</span><span class="nu0">1</span>, <span class="nu0">2</span><span class="br0">&#41;</span>; <span class="co1">// İnt ile Özel toplama</span></div>
</li>
<li class="li1">
<div class="de1">r4.<span class="me1">sadelestir</span><span class="br0">&#40;</span><span class="br0">&#41;</span>; <span class="co1">// Sadeleştirme</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">MessageBox.<span class="me1">Show</span><span class="br0">&#40;</span>r4.<span class="me1">Goster</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>; <span class="co1">// Rasyonel sayi gösterimi..</span></div>
</li>
</ol>
</div>
<p><span id="more-284"></span></p>
<p>Hemen Object sınıfından türemiş &#8220;ras&#8221; adlı bir sınıf yaratıyoruz..</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">public class ras</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp;public <span class="kw4">int</span> pay;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp;public <span class="kw4">int</span> payda;</div>
</li>
<li class="li2">
<div class="de2">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp;public ras<span class="br0">&#40;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp;<span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; this.<span class="me1">pay</span> = <span class="nu0">0</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; this.<span class="me1">payda</span> = <span class="nu0">0</span>;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp;<span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
</ol>
</div>
<p>Şimdi ras r2 = new ras(6,8); satırındaki yapıcı fonksiyonunu yaratıyoruz.</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">public class ras</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp;public <span class="kw4">int</span> pay;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp;public <span class="kw4">int</span> payda;</div>
</li>
<li class="li2">
<div class="de2">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp;public ras<span class="br0">&#40;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp;<span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; this.<span class="me1">pay</span> = <span class="nu0">0</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; this.<span class="me1">payda</span> = <span class="nu0">0</span>;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp;<span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp;public ras<span class="br0">&#40;</span><span class="kw4">int</span> a, <span class="kw4">int</span> b<span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp;<span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; this.<span class="me1">pay</span> = a;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; this.<span class="me1">payda</span> = b;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp;<span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
</ol>
</div>
<p>Hemen ardından String ile rasyonel sayıyı oluşturabilmek için 3. ek yapıcı fonksiyonumuzu kodlayalım.<br />
ras r1 = new ras(&#8221;1/2&#8243;);</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">public class ras</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp;public <span class="kw4">int</span> pay;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp;public <span class="kw4">int</span> payda;</div>
</li>
<li class="li2">
<div class="de2">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp;public ras<span class="br0">&#40;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp;<span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; this.<span class="me1">pay</span> = <span class="nu0">0</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; this.<span class="me1">payda</span> = <span class="nu0">0</span>;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp;<span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp;public ras<span class="br0">&#40;</span><span class="kw4">int</span> a, <span class="kw4">int</span> b<span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp;<span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; this.<span class="me1">pay</span> = a;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; this.<span class="me1">payda</span> = b;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp;<span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp;public ras<span class="br0">&#40;</span><span class="kw4">string</span> veri<span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp;<span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw4">int</span> orta = veri.<span class="me1">IndexOf</span><span class="br0">&#40;</span><span class="st0">&quot;/&quot;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// Bölmek için &quot;/&quot; karakterinin indisini alıyoruz.</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw4">int</span> uzunluk = veri.<span class="me1">Length</span>; <span class="co1">//Verinin uzunluğu</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw4">string</span> payS = veri.<span class="me1">Substring</span><span class="br0">&#40;</span><span class="nu0">0</span>, orta<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Verinin &quot;/&quot; karakterine kadar ki kısmını payS stringine atıyoruz. </span></div>
</li>
<li class="li2">
<div class="de2">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw4">string</span> paydaS = veri.<span class="me1">Substring</span><span class="br0">&#40;</span>orta + <span class="nu0">1</span>, uzunluk &#8211; orta &#8211; <span class="nu0">1</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Aynı &quot;/&quot; karakterinden bir sonkraki karakterden başlayarak son karaktere kadar ki kısmınıda paydaS eşitliyoruz.</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Ve bulduğumuz değerleri Integer&#8217;a çevirip pay ve paydaya atıyoruz.</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; this.<span class="me1">pay</span> = System.<span class="me1">Convert</span>.<span class="me1">ToInt32</span><span class="br0">&#40;</span>payS<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; this.<span class="me1">payda</span> = System.<span class="me1">Convert</span>.<span class="me1">ToInt32</span><span class="br0">&#40;</span>paydaS<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp;<span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
</ol>
</div>
<p>Sınıfa özel özellikler eklemek için yukarıdaki parçalama işlemini private bir fonksiyon olarak yazıp diğer özelliklerde fonksiyonel olarak parçalayabilirsiniz.</p>
<p>Örnek özellik olarak topla() fonksiyonunu yapıyoruz</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">public class ras</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp;public <span class="kw4">int</span> pay;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp;public <span class="kw4">int</span> payda;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp;private <span class="kw4">string</span> payS;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp;private <span class="kw4">string</span> paydaS;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp;private <span class="kw4">int</span> orta;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp;private <span class="kw4">int</span> uzunluk;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp;public ras<span class="br0">&#40;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp;<span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; this.<span class="me1">pay</span> = <span class="nu0">0</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; this.<span class="me1">payda</span> = <span class="nu0">0</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp;<span class="br0">&#125;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp;public ras<span class="br0">&#40;</span><span class="kw4">int</span> a, <span class="kw4">int</span> b<span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp;<span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; this.<span class="me1">pay</span> = a;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; this.<span class="me1">payda</span> = b;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp;<span class="br0">&#125;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp;public ras<span class="br0">&#40;</span><span class="kw4">string</span> veri<span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp;<span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; orta = veri.<span class="me1">IndexOf</span><span class="br0">&#40;</span><span class="st0">&quot;/&quot;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// Bölmek için &quot;/&quot; karakterinin indisini alıyoruz.</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; uzunluk = veri.<span class="me1">Length</span>; <span class="co1">//Verinin uzunluğu</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; payS = veri.<span class="me1">Substring</span><span class="br0">&#40;</span><span class="nu0">0</span>, orta<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Verinin &quot;/&quot; karakterine kadar ki kısmını payS stringine atıyoruz. </span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; paydaS = veri.<span class="me1">Substring</span><span class="br0">&#40;</span>orta + <span class="nu0">1</span>, uzunluk &#8211; orta &#8211; <span class="nu0">1</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Aynı &quot;/&quot; karakterinden bir sonkraki karakterden başlayarak son karaktere kadar ki kısmınıda paydaS eşitliyoruz.</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Ve bulduğumuz değerleri Integer&#8217;a çevirip pay ve paydaya atıyoruz.</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; this.<span class="me1">pay</span> = System.<span class="me1">Convert</span>.<span class="me1">ToInt32</span><span class="br0">&#40;</span>payS<span class="br0">&#41;</span>;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; this.<span class="me1">payda</span> = System.<span class="me1">Convert</span>.<span class="me1">ToInt32</span><span class="br0">&#40;</span>paydaS<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp;<span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp;public <span class="kw4">void</span> topla<span class="br0">&#40;</span><span class="kw4">int</span> a, <span class="kw4">int</span> b<span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp;<span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; this.<span class="me1">pay</span> = a * this.<span class="me1">payda</span> + b * this.<span class="me1">pay</span>;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; this.<span class="me1">payda</span> = b * this.<span class="me1">payda</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp;<span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
</ol>
</div>
<p>topla() gibi aklımıza gelebilecek bir çok özellikler ekleyebiliriz..</p>
<h2>OPERATOR OVERLOADING</h2>
<p>Yaptığımız tipi oparatörlerle beraber kullanmak istersek eğer .NET Framework bize sunduğu &#8220;operator&#8221; on eki ile yapabiliyoruz..</p>
<p>operator overloading fonksiyonlarının <a href="http://blogs.msdn.com/ericlippert/archive/2007/05/14/why-are-overloaded-operators-always-static-in-c.aspx">bazı önemli nedenlerden</a> dolayı public ve static olmak zorundadır..</p>
<p>Kullanımı çok basittir.</p>
<p>ras r4 = r1 + r2; için</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">public <span class="kw4">static</span> ras operator + <span class="br0">&#40;</span>ras r1, ras r2<span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp;<span class="co1">//İşlemler..</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
</ol>
</div>
<p>&#8220;+&#8221; operatörüne oparatör overloading işlemi uyguladığımızda aynı zamanda += oparatörünüde uygulanmış oluyor..</p>
<p>ras r4 = r1 + 5; için</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">public <span class="kw4">static</span> ras operator + <span class="br0">&#40;</span>ras r1, <span class="kw4">int</span> i<span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp;<span class="co1">//İşlemler..</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
</ol>
</div>
<p>if(r1 == r2){} için</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">public <span class="kw4">static</span> bool operator == <span class="br0">&#40;</span>ras r1, ras r2<span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp;<span class="co1">//İşlemler..</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
</ol>
</div>
<p>Örnek olarak ras tipindeki &#8220;+&#8221; operatörü için şu şekilde kod yazabiliriz.</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">public <span class="kw4">static</span> ras operator +<span class="br0">&#40;</span>ras c1, ras c2<span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">return</span> new ras<span class="br0">&#40;</span>c1.<span class="me1">pay</span> * c2.<span class="me1">payda</span> + c1.<span class="me1">payda</span> * c2.<span class="me1">pay</span>, c1.<span class="me1">payda</span> * c2.<span class="me1">payda</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
</ol>
</div>
<p>sadelestir() Goster() &gt; &lt; == operatörleri gibi birçok özellik ekleyip dahada geliştirilebilir..</p>
]]></content:encoded>
			<wfw:commentRss>http://www.blocracy.com/c-ile-kullanici-tanimli-tip-gelistirmek-ve-operator-overloading/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
