Operatörler için en sade şekliyle matematiksel yada mantıksal hesapların yapılması, değişik çalışma deyimlerinin hazırlanması amacıyla kullanılan işlemlerdir diyebiliriz. C# da bu konuda kendini bihayli geliştirmiştir.
Operatörlerle gerekli işleri yapmak için bir takım malzemeye ihtiyaç duyarız.Örneğin + operatörünün toplama yapabilmesi için iki tane sayıya ihtiyacı vardır.Bu sayılara operand denmektedir.Aynı şekilde ++ operatörü bir operanda ihtiyaç duyar.Gördüğümüz gibi her operatörün farklı sayıda operandı bulunmaktadır.
a+b ( burda operatör + , operandlar a ve b )
++c ( burda operatör ++ , operand c )
C# bu konuda bizlere kolaylık sağlamak için yapılarına göre operatörleri 3 gruba ayırmış.Bunlar :
Unary Operatörler:Tek operandı olan operatörlerdir.
() , [] , ++ , + , -- , - , ! , ~ , new , checked , unchecked , typeof , sizeof
Binary Operatörler:İki operandı olan operatörlerdir.
/ , * , % , + , - , < , <= , > , >= , as , is , >> , == , != , & , ^ , | , && , || , = , *= , /= , %= , += , ‐= , <<= , >>= , &= , ^= , |=
Tenary Operatörler:Üç operandı olan operatörlerdir.
?:
Gel gelelim ikinci sınıflandırma türümüz olan işlevlerine göre operatörlere. Bunları da 6 ayrı grupda inceleyabiliriz.
Aritmetik Operatörler (Arithmatic Operators ):Toplama ve çıkarma gibi temel işlemleri yapan operatörlerdir.
Karşılaştırma Operatörleri (Comparision Operators):İki sayı arasındaki büyüklük ve küçüklük gibi ilişkileri kontrol eder.
Mantıksal Operatörler (Logical Operators):Mantıksal işlemleri gerçekleştirir.
Bitsel Operatörler (Bitwise Operators):Değişkenlere ilişkin değerlerin bitleri ile ilgili işlemler yaparlar.
Atama Operatörü (Assignment Operators ):Bir değişkene değer atamak için kullanılır.
Özel Amaçlı Operatörler (Special Case Operators):Bu gruptaki operatörlerin genel bir amacı yoktur.Her biri farklı amaçlar için kullanılır.
Operatör Önceliği
Parantez, mod,*/,+-
DİPNOT: Atama operatörleri hariç bütün binary operatörler soldan sağa önceliğe sahiptir.
OPERATÖR ÖNCELİĞİ TABLOSU
DİPNOT:Program yazarken bu tablodan yararlanmanız işlerinizi oldukça kolaylaştıracaktır.
ARİTMATİK OPERATÖRLER
Aritmetik operatörler için gayet basit , hatta neredeyse ilkokulda öğrendiğimiz şeyler diyebiliriz.Bunlara matematiksel operatörler de denmekte.Bu operatörler ile istediğiniz değerlerin toplamasını, çıkarmasının ,çarpmasını ve ya bölmesini yapabilirsiniz.
+ : Ekleme işlemi için kullanılır.
float x,y,toplam;
toplam=x+y;
- : Çıkarma işlemi için kullanılır.
int x,y,fark;
fark=x-y;
* : Çarpma işlemi için kullanılır.
intx,y,carpim;
carpim=x*y;
/ : Bölme işlemi için kullanılır.
double,y,bolum;
bolum=x/y;
% : Mod alma işlemleri için kullanılır.
intx,y,kalan;
kalan=x%y;
++ : Birer birer arttırma işlemi için kullanılır.
intx,y;
++x ;
y++;
-- : Birer birer azaltma işlemi için kullanılır.
intx,y;
--x;
y--;
KARŞILAŞTIRMA OPERATÖRLERİ
Bu operatör türü genelde ileride göreceğimiz if blokları ve döngü yapılarında kullanılır.
== Eşittir
!= Eşit değildir
< Büyüktür
< Küçüktür
>= Büyük eşittir
<= Küçük eşittir
Karşılaştırma operatörleri genellikle program kontrol ifadelerinde kullanılır. Operatörün sağındaki değer ile solundaki değer birbiri ile operatörlere göre karşılaştırılır ve işleme tabii tutulur.
DİPNOT: Bu karşılaştırma işleminin sonucu bool tipindedir.
İf(x == y)
x ve y nin birbirine eşit olup olmadığı kontrol edilir.Eğer iki değer birbirine eşitse sonuç doğru - diğer bir ifade ile true - ,eşit değilse sonuç yanlış - false - deriz.
is operatörü ise çalışma zamanında bir nesnenin türünün operand ile verilen türe uygun olup olmadığını kontrol eder.
<ifade> is <tür>
as operatörü uygun tipler arasındaki dönüşümü sağlar.Çok fazla kullanmayız.
<referans tipi üretecek ifade> as <referans türü >
MANTIKSAL OPERATÖRLER
&& ( VE ) : true yada false değerindeki operandları mantıksalVE ile işler.Operandlardan biri false ise false değeri üretilir.
<İfade> && <ifade>
VE işleminin doğruluk tablosu
Bu operatör türü genelde ileride göreceğimiz if blokları ve döngü yapılarında kullanılır.
== Eşittir
!= Eşit değildir
< Büyüktür
< Küçüktür
>= Büyük eşittir
<= Küçük eşittir
Karşılaştırma operatörleri genellikle program kontrol ifadelerinde kullanılır. Operatörün sağındaki değer ile solundaki değer birbiri ile operatörlere göre karşılaştırılır ve işleme tabii tutulur.
DİPNOT: Bu karşılaştırma işleminin sonucu bool tipindedir.
İf(x == y)
x ve y nin birbirine eşit olup olmadığı kontrol edilir.Eğer iki değer birbirine eşitse sonuç doğru - diğer bir ifade ile true - ,eşit değilse sonuç yanlış - false - deriz.
is operatörü ise çalışma zamanında bir nesnenin türünün operand ile verilen türe uygun olup olmadığını kontrol eder.
<ifade> is <tür>
as operatörü uygun tipler arasındaki dönüşümü sağlar.Çok fazla kullanmayız.
<referans tipi üretecek ifade> as <referans türü >
MANTIKSAL OPERATÖRLER
&& ( VE ) : true yada false değerindeki operandları mantıksalVE ile işler.Operandlardan biri false ise false değeri üretilir.
<İfade> && <ifade>
VE işleminin doğruluk tablosu
1.OPERAND 2.OPERAND SONUÇ
true true true
true false false
false true false
false false false
bool b1 = 25 < 15 && 5 == 50;b1
false
boolb2 = 25 > 15 && 5 != 50;b2
true
bool b3 = -13,9f > -13,8f && 0 !=1;b3
false
I I (VEYA): true yada false değerindeki operandları mantıksal VEYA ile işler. Operandlardan biri true ise true değeri üretilir.
<İfade > I I < ifade>
VEYA işleminin doğruluk tablosu
1.OPERAND 2.OPERAND SONUÇ
true true true
true false true
false true true
false false false
bool b1 = 25 < 15 I I 5 == 50; b1
false
boolb2 = 25 > 15 I I 5 != 50;b2
true
bool b3 = -13,9f > -13,8f I I 0 !=1;b3
true
! (DEĞİL):Tek operand alır ve mantıksal Değil uygular.
! < ifade >
DEĞİL işleminin doğruluk tablosu
OPERAND SONUÇ
true false
false true
BİTSEL OPERATÖRLER
Mantıksal operatörler nesnelerin üzerinde karşılaştırma gibi işlemler yaparak direkt doğru ya da yanlış sonuç üreten operatörlerdi. Bitsel operatörler ise sayıları ikilik olarak ele alır ve her bitlerinde işlem gerçekleştirirler.
DİPNOT: Bitsel operatörler tamsayılarda kullanılır, gerçek sayılarda kullanılamaz.
DİPNOT: Bitsel operatörlerde bool türünden ifadeler kullanılırsa mantıksal işlemler gerçekleştirir.
~ (Bitsel (Bitsel DEĞİL) :Tek operand alan ~ operatörü bir değer içindeki bitlerin teker teker tersini alır.
Mesela 0000 1111 sayısının bitsel değili 1111 0000 olur.
& (Bitsel VE) :İki operandın bitlerini karşılıklı olarak VE işlemine tabi tutar.
| (Bitsel VEYA):İki o perandın bitlerini kar şılıklı olarak VEYA işlemine tabi tutar.
DİPNOT: Bunu taraf tarafa toplama işlemi gibi düşünebiliriz mantık aynı mantık .Verilen iki değerialt alta yazıp sadece ve/veya işlemi uygulanır.
ATAMA VE İŞLEMLİ ATAMA OPERATÖRLERİ
=(Atama ): Bir değişkene herhangi bir değer atamak için kullanılır.Aşina olduğumuz bir operatör.Bilmemiz gereken en önemli nokta = operatörünün atama işlemini yaptığı değeri üretmesidir.şimdi vereceğim ifade de bu yüzden geçersizdir.
Byte b=7 , a=1 , c ;
(c=a)=b; //Hatalı çünkü sonuç 1 = b olacaktır ve buda yanlıştır.
İşlemli atama operatörleri:
*=,/=,+=,-=,&=,^=,I= gibi operatörler işlemli atama operatörleridir.
a=a+b; yerine a+=b ;
a=a/b;yerine a/b
a=a^b;yerine a^=b
yazarsak derdimizi kısa yoldan anlatmış oluruz.
ÖZEL AMAÇLI OPERATÖRLER
?: (tenary):Başta da belirttiğim gibi tenary c# da 3 operand alan tek operatördür.İf-else yapı bloklarının yaptığı işe benzer bir iş yapmaktadır.
“koşul ? doğru _değer : yanlış değer “
()tür dönüştürme: Tür değiştirmek için kullanılan operatördür.
(değiştirilecek tür)değişken_yada_sabit
[]: Dizilerde elemanın dizisini belirtmek için kullanılır.
+ ve - : Dizilerde elemanın dizisini belirtmek için kullanılır.
typeof operatörü: Herhangi bir değişken türünün CTS (Common Type System - Ortak Tip Sistemi) karşılığını type(tip) olarak tutar.
true true true
true false false
false true false
false false false
bool b1 = 25 < 15 && 5 == 50;b1
false
boolb2 = 25 > 15 && 5 != 50;b2
true
bool b3 = -13,9f > -13,8f && 0 !=1;b3
false
I I (VEYA): true yada false değerindeki operandları mantıksal VEYA ile işler. Operandlardan biri true ise true değeri üretilir.
<İfade > I I < ifade>
VEYA işleminin doğruluk tablosu
1.OPERAND 2.OPERAND SONUÇ
true true true
true false true
false true true
false false false
bool b1 = 25 < 15 I I 5 == 50; b1
false
boolb2 = 25 > 15 I I 5 != 50;b2
true
bool b3 = -13,9f > -13,8f I I 0 !=1;b3
true
! (DEĞİL):Tek operand alır ve mantıksal Değil uygular.
! < ifade >
DEĞİL işleminin doğruluk tablosu
OPERAND SONUÇ
true false
false true
BİTSEL OPERATÖRLER
Mantıksal operatörler nesnelerin üzerinde karşılaştırma gibi işlemler yaparak direkt doğru ya da yanlış sonuç üreten operatörlerdi. Bitsel operatörler ise sayıları ikilik olarak ele alır ve her bitlerinde işlem gerçekleştirirler.
DİPNOT: Bitsel operatörler tamsayılarda kullanılır, gerçek sayılarda kullanılamaz.
DİPNOT: Bitsel operatörlerde bool türünden ifadeler kullanılırsa mantıksal işlemler gerçekleştirir.
~ (Bitsel (Bitsel DEĞİL) :Tek operand alan ~ operatörü bir değer içindeki bitlerin teker teker tersini alır.
Mesela 0000 1111 sayısının bitsel değili 1111 0000 olur.
& (Bitsel VE) :İki operandın bitlerini karşılıklı olarak VE işlemine tabi tutar.
| (Bitsel VEYA):İki o perandın bitlerini kar şılıklı olarak VEYA işlemine tabi tutar.
DİPNOT: Bunu taraf tarafa toplama işlemi gibi düşünebiliriz mantık aynı mantık .Verilen iki değerialt alta yazıp sadece ve/veya işlemi uygulanır.
ATAMA VE İŞLEMLİ ATAMA OPERATÖRLERİ
=(Atama ): Bir değişkene herhangi bir değer atamak için kullanılır.Aşina olduğumuz bir operatör.Bilmemiz gereken en önemli nokta = operatörünün atama işlemini yaptığı değeri üretmesidir.şimdi vereceğim ifade de bu yüzden geçersizdir.
Byte b=7 , a=1 , c ;
(c=a)=b; //Hatalı çünkü sonuç 1 = b olacaktır ve buda yanlıştır.
İşlemli atama operatörleri:
*=,/=,+=,-=,&=,^=,I= gibi operatörler işlemli atama operatörleridir.
a=a+b; yerine a+=b ;
a=a/b;yerine a/b
a=a^b;yerine a^=b
yazarsak derdimizi kısa yoldan anlatmış oluruz.
ÖZEL AMAÇLI OPERATÖRLER
?: (tenary):Başta da belirttiğim gibi tenary c# da 3 operand alan tek operatördür.İf-else yapı bloklarının yaptığı işe benzer bir iş yapmaktadır.
“koşul ? doğru _değer : yanlış değer “
()tür dönüştürme: Tür değiştirmek için kullanılan operatördür.
(değiştirilecek tür)değişken_yada_sabit
[]: Dizilerde elemanın dizisini belirtmek için kullanılır.
+ ve - : Dizilerde elemanın dizisini belirtmek için kullanılır.
typeof operatörü: Herhangi bir değişken türünün CTS (Common Type System - Ortak Tip Sistemi) karşılığını type(tip) olarak tutar.
sizeof operatörü: Temel türlerin ve yapıların bellekte ne kadar alan kapladıklarını verir. "sizeof" operatörü sınıflar için kullanılamaz ancak tanımlanacak yapılar için kullanılabilir.
new operatörü: Yeni bir nesne oluşturmak için kullanılan operatörlerdir.Özel amaçlı operatörler aynı satırda yer alıyorsa öncelik sıralamaları eşittir fakat bu operatörler diğer operatörler ile karşılaştırıldığında öncelik bakımından ilk sırada yer alırlar.