Operatörler önceden tanımlanmış birtakım matematiksel ya da mantıksal işlemleri yapmak için kullanılan özel karakterler ya da karakterler topluluğudur. Operatörlerin işlem yapabilmek için ihtiyaç duydukları değerlere ise “operand” denir.
x+y -> “+” operatör, “x” ve “y” operand
++z -> “++” operatör, “z” operand
Operatörler yapılarına ve işlevlerine göre sınıflandırılabilir.
1) Yapılarına göre
Unary (tekil) operatörler: () , [], ++, _, +, _, !, ~, new, checked , unchecked , typeof, sizeof
Binary (İkili) Operatörler: *,/,%, + ,-,<,<=,>,>=, as, is, <<,>>,==,!=,&, ^, | ,&&, ||, = ,*=,/=,%=,+=,-=,<<=, >>=,&=,^=,| =
Ternary(üçlü) Operatörler: ? :
2) İşlevlerine göre
Aritmetik operatörler (++, –, *, /, +, -, %)
Karşılaştırma operatörleri (<,>,!=, ==,as, is)
Mantıksal operatörler ( || ,&&, !)
Bitsel operatörler (>>,<<, ~(değil), &, |, ^ (xor-aynı 0,farklı 1) )
Atama ve işlemli atama( *=, %=, -= vs)
Özel amaçlı operatörler (? : operatörü (a<b ? min=a : min=b))
new operatörü :yeni bir nesne oluşturur.
typeof : nesnelerin GetType() metodu gibi bağlı olduğu System türünü verir.
Sizeof, (), [],+,-,*,&,->, . , checked, unchecked
Operatör Önceliği
Bazı ifadelerde birden fazla operatör kullanılmış olabilir. Bu gibi durumlarda operatörlerin belirli bir çalışma sırası olacaktır. Büyükten küçüğe işlem önceliği;
Parantez
Üs Alma
Çarpma , Bölme
Toplama, Çıkarma
Bazı operatörlerin öncelik sırası aynı olabilir. Çarpma‐bölme ya da toplama‐ çıkarma gibi operatörler aralarında aynı önceliğe sahiptir. Böyle bir durumda sağdan sola ya da soldan sağa öncelik ilişkisi devreye girer. Atama operatörleri hariç bütün binary operatörler soldan sağa önceliğe sahiptir, işlemler bu yönde yapılır.
Yukarıdan aşağı doğru bir öncelik sıralaması vardır. Aynı satırda belirtilmiş olan operatörler ise aynı önceliğe sahiptirler. Bunlar arasında (atama operatörleri hariç) soldan sağa öncelik ilişkisi söz konusudur.
Aritmetik Operatörler
+ , ‐, * ve / operatörleri:
Bölümden sonra kalanı bulmak yani “mod” almak amacıyla kullanılır Tüm sayısal türler için kullanılabilir. x=10 % 3 -> x= 1
++ ve ‐‐ Operatörleri:
Karşılaştırma Operatörü
İki sayısal değerin birbirlerine göre büyüklüğünü, küçüklüğünü ve eşitliğini kontrol eder. Bu operatörlerin ürettiği değerler “true” ve “false” değerleridir.
= =
|
Eşittir
|
!=
|
Eşit Değildir
|
<
|
Küçüktür
|
>=
|
Büyük Eşittir
|
>
|
Büyüktür
|
<=
|
Küçük Eşittir
|
using System;
class ilişkisel_operatörler {
public static void Main() {
int a = 10, b = 15;
if(a == b) Console.WriteLine(“a,b’ye eşittir”);
if(a < b) Console.WriteLine(“a,b’denküçüktür”);
if(a > b) Console.WriteLine(“a,b’denbüyüktür”);
if(a != b) Console.WriteLine(“a,b’ye eşit değil”);
if(a >= b) Console.WriteLine(“a,b’ye eşittir veya büyüktür”);
if(a <= b) Console.WriteLine(“a,b’ye eşittir veya küçüktür”);
}
}
class ilişkisel_operatörler {
public static void Main() {
int a = 10, b = 15;
if(a == b) Console.WriteLine(“a,b’ye eşittir”);
if(a < b) Console.WriteLine(“a,b’denküçüktür”);
if(a > b) Console.WriteLine(“a,b’denbüyüktür”);
if(a != b) Console.WriteLine(“a,b’ye eşit değil”);
if(a >= b) Console.WriteLine(“a,b’ye eşittir veya büyüktür”);
if(a <= b) Console.WriteLine(“a,b’ye eşittir veya küçüktür”);
}
}
as Operatörü
as operatörü sık kullanılmayan bir operatördür. Uygun türler arası dönüşüm sağlar as operatörü sonucunda referans türde değer elde edilir. Genellikle object türündeki nesneleri farklı bir türe çevirmek için kullanılır. Çevirme işlemi başarısız ise null değeri üretir.
Kullanımı: <referans tipi üretilecek ifade> as <referans tipi>
Örnek:
object i=”50″;
string s=i as string;
is Operatörü
is operatörü, çalışma zamanında bir nesnenin türünün operand ile verilen türe uyumlu olup olmadığını kontrol eder. Sık kullanılmaz.
Kullanımı: <ifade>is<tür>
Örnek:
int i=50;
bool b1=i is int
Çalışma sonucu “true” değerini verir.
Mantıksal Operatörler
&
|
VE
|
&&
|
Kısa devre VE
|
|
|
VEYA
|
| |
|
Kısa devre VEYA
|
^
|
XOR
|
!
|
Değil
|
&& (VE) Operatörü:
“true” ya da “false” değerindeki operandları mantıksal VE ile işler. Operandlardan biri “false” ise “false” değeri üretir.
Kullanımı: <ifade> && <ifade>
bool b1 = 25 < 15 && 5 == 50 ;
|| (VEYA) Operatörü:
“true” ya da “false” değerindeki operandl arı mantıksal VEYA ile işler. Operandlardan biri “true” ise “true” değeri üretir.
Kullanımı: <ifade> || <ifade>
bool b1 = 25 < 15 || 5 == 50 ;
! (Değil) Operatörü:
Kullanımı: ! <ifade>
using System;
class mantıksal_operatörler{
public static void Main(){
bool a = true;
bool b = false;
if (a ^ b) Console.WriteLine(“a^b doğrudur”);
if (a && b) Console.WriteLine(“a ve b doğrudur”);
if (a || b) Console.WriteLine(“a veya b doğrudur”);
}
}
Bit Tabanlı Operatörler
&
|
Bit tabanlı VE
|
>>
|
|
|
|
Bit tabanlı VEYA
|
<<
|
Sola kaydırma
|
^
|
Bit tabanlı XOR
|
~
|
Birin tümleyeni
|
Bitsel operatörler ise sayıları ikilik olarak ele alır ve her bitlerinde işlem gerçekleştirirler. Bitsel operatörler tamsayılarda kullanılır, gerçek sayılarda kullanılamaz. Bitsel operatörlerde bool türünden ifadeler kullanılırsa mantıksal işlemler gerçekleştirir. Bu operatörler bitlerin durumlarını öğrenmek veya belirli bitlerin değerlerini değiştirmek için kullanılabilir.
Atama ve İşlemli Atama Opreratörleri
= (Atama) Operatörü:
Bir değişkene herhangi bir değer atamak için kullanılır. Çok bilinen ve kullanılan bir operatördür. İşlemli atama operatörleri, işlem sonucunun işlenen operanda atandığı durumlarda kullanılır
? : (Ternarty) Operatörü:
Bir koşulu karşılaştırıp doğru ya da yanlış olduğu durumlar için farklı değerler üretmeyi sağlayan operatördür. Üç tane operanda sahiptir. Kullanımı:
koşul ? doğru değeri : yanlış değeri
sayi < 10 ? “10dan küçük” : “10 a eşit ya da büyük”
() Operatörü (Tür Dönüştürme):
İfade önüne yazıldığında tür dönüştürme operatörü olarak çalışır.
[] Operatörü (İndeks): Dizilerde elemanın indeksini belirtmek için kullanılır.
+, – (İşaret Operatörleri): Bir değişkenin içeriğindeki değerin negatif ya da pozitif olarak işlem görmesini sağlar. + aynı zamanda stringler de ekleme için de kullanılan bir operatördür.
&, *, ‐> ve sizeof Operatörleri: C/C++ dilindeki işaretçileri (pointer) C# dilinde de kullanmak mümkündür. Güvensiz (unsafe) kod yazarken bu operatörler de kullanılabilir.
. Operatörü: Bir sınıfın ya da yapının elemanlarına ulaşmak için kullanılır. Console.WriteLine(); gibi…
new Operatörü: Yeni bir nesne oluşturmak için kullanılan operatördür. Değer ve referans tiplerden yeni bir nesne oluşturmak için kullanılabilir.
Örnek : Sinif s = new Sinif();
Bir yanıt yazın