İçeriğe atla

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

Vikipedi, özgür ansiklopedi
[kontrol edilmiş revizyon][kontrol edilmiş revizyon]
İçerik silindi İçerik eklendi
SkyHorizon (mesaj | katkılar)
Düzenleme
1. satır: 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 ==
== Koşullu atama ==
''Muhtemel boş değişkene'' bakılır, ''true'' veya ''false'' kontrolü yapılır. İkili matematik kontrolüne dayanarak, ''muhtemel boş değişken'' boş ise öntanımlı değer, değilse ''muhtemel boş değişken'' gönderilir. [[Fonksiyonel programlama]]da kullanılan [[?:]] 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 Sharp|C#]]'ta bir sayfanın "Title" değeri boş ise başka bir değer atayarak değiştirmek iç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 bir 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)
if (suppliedTitle == null)
SayfaBaşlığı = "Öntanımlı Başlık";
SayfaBaşlığı = "Öntanımlı Başlık";
else
else
SayfaBaşlığı = öncedenAtanmışBaşlık;
SayfaBaşlığı = öncedenAtanmışBaşlık;
</source>

kodları aynı sonucu verir.

== İç bağlantılar ==
* [[C Sharp programlama dili|C#]]


== Dış bağlantılar ==
== Dış bağlantılar ==
* [http://mascix.blogspot.com/2007/10/c.html ?? C#]
* [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]]

Sayfanın 18.48, 19 Kasım 2018 tarihindeki hâli

?? operatörü ya da birleşme operatörü herhangi bir değere sahip olmayan değişkenlere öntanımlı bir değer atamak için kullanılan ikili işleçtir.

Koşullu atama

Muhtemel boş değişkene bakılır, true veya false kontrolü yapılır. İkili matematik kontrolüne dayanarak, muhtemel boş değişken boş ise öntanımlı değer, değilse muhtemel boş değişken gönderilir. Fonksiyonel programlamada kullanılan ?: 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#'ta bir sayfanın "Title" değeri boş ise başka bir değer atayarak değiştirmek için şu kod kullanılır:

// en kısa yol
string SayfaBaşlığı = öncedenAtanmışBaşlık ?? "Öntanımlı Başlık";

// daha uzun bir yol
string SayfaBaşlığı = öncedenAtanmışBaşlık == null ? "Öntanımlı Başlık" : öncedenAtanmışBaşlık;

// bir if-else parçacığı kullanan yol
string SayfaBaşlığı;
 
if (suppliedTitle == null)
    SayfaBaşlığı = "Öntanımlı Başlık";
else
    SayfaBaşlığı = öncedenAtanmışBaşlık;

Dış bağlantılar