?? operatörü: Revizyonlar arasındaki fark

[kontrol edilmiş revizyon][kontrol edilmiş revizyon]
İçerik silindi İçerik eklendi
SkyHorizon (mesaj | katkılar)
Düzenleme
1. satır:
'''?? operatörü''' ya da '''birleşme operatörü''' [[Null (bilgisayar bilimi)|herhangi bir değere sahip olmayan]] [[değişken]]lere öntanımlı bir değer atamak için kullanılan [[ikili işleç]]tir.
{{Düzenle|Eylül 2011}}
 
 
'''<code>??</code>''' operatörü, birleşme operatörü olarak da bilinir. Özellikle [[C Sharp (programlama dili)|C#]]'da kullanılan basit operatörlerden biridir.
 
== Koşullu atama ==
''muhtemelMuhtemel boş değişkendeğişkene'' e bakılır, ''true'' veya ''false'' kontrolü yapılır. İkili matematik kontrolüne dayanarak, bu satır ''boşsa gidecek değer'' gönderir. eğer ''muhtemel boş değişken'' boş ise öntanımlı değer, değilse ''muhtemel boş değişken'' gönderilir. Bu fonksiyonel [[Fonksiyonel programlama]]da kullanılan ('''<code>[[?:]]</code>''') operatörüne benzer.
 
Bu operatörün en sık kullanım sebebi boş kontrolü yapılan satırlardaki kod miktarını azaltmaktır. Örnek olarak, [[C# da diyelimkiSharp|C#]]'ta bir sayfanın "Title" değeri boş ise başka bir değer atayarak değiştirmek istiyoruziçin şu kod kullanılır:
<code>??</code> boş değişkenlerin kontrolünde kullanılır:
 
<source lang="csharp">
''muhtemel boş değişken'' ?? ''boşsa gidecek değer''
// en kısa yol
string SayfaBaşlığı = öncedenAtanmışBaşlık ?? "Öntanımlı Başlık";
 
// daha uzun haliylebir yol
''muhtemel boş değişken'' e bakılır ''true'' veya ''false'' kontrolü yapılır. İkili matematik kontrolüne dayanarak, bu satır ''boşsa gidecek değer'' gönderir. eğer ''muhtemel boş değişken'' boş ise, değilse ''muhtemel boş değişken'' gönderilir. Bu fonksiyonel [[programlama]]da kullanılan ('''<code>[[?:]]</code>''') operatörüne benzer.
string SayfaBaşlığı = öncedenAtanmışBaşlık == null ? "Öntanımlı Başlık" : öncedenAtanmışBaşlık;
 
// bir if-else parçacığı kullanan yol
Bu operatörün en sık kullanım sebebi boş kontrolü yapılan satırlardaki kod miktarını azaltmaktır. Örnek olarak C# da diyelimki bir sayfanın "Title" değeri boş ise başka bir değer atayarak değiştirmek istiyoruz:
string SayfaBaşlığı;
 
string SayfaBaşlığı = öncedenAtanmışBaşlık ?? "Öntanımlı Başlık";
 
daha uzun haliyle
 
string SayfaBaşlığı = öncedenAtanmışBaşlık == null ? "Öntanımlı Başlık" : öncedenAtanmışBaşlık;
 
ya da daha da uzun haliyle
 
string SayfaBaşlığı;
if (suppliedTitle == null)
SayfaBaşlığı = "Öntanımlı Başlık";
else
SayfaBaşlığı = öncedenAtanmışBaşlık;
</source>
 
kodları aynı sonucu verir.
 
== İç bağlantılar ==
* [[C Sharp programlama dili|C#]]
 
== Dış bağlantılar ==
* [http://mascix.blogspot.com/2007/10/c.html ?? C#]
 
[[Kategori:Programlama yapıları]]
{{prog-dili-taslak}}
[[Kategori:İkili işlemler]]
 
[[Kategori:Nesne yönelimli programlama]]