Programlama dillerinde tek başlarına herhangi bir anlamı olmayan ancak programın işleyişine katkıda bulunan karakter ya da karakter topluluklarına operatör denir. Operatörlerin etki ettikleri sabit ya da değişkenlere "operand" denir.
Operatörler işlevlerine göre 6 kısımda incelenebilir. Bunlar;
- Aritmetik operatörler.
- Karşılaştırma operatörleri.
- Bitsel operatörler.
- Mantıksal operatörler.
- Atama ve işlemli atama operatörleri.
- Özel amaçlı operatörler.
Aritmetik operatörler
- + , ‐ , * , /, ++ , -- ve % aritmetik operatörlerdir.
- /, *, + ve – operatörleri matematiksel işlemler yapar.
- % operatörü ise bölümden sonra kalanı bulmak yani "mod" almak için kullanılır.
- ++ ve -- işlemin uygulandığı sayıyı 1 arttırır veya 1 azaltır.
- *, /, % operatörleri aynı satırdaysa eşit önceliğe sahiptir. + ve – operatörleri de aynı satırdaysa eşit önceliklidir fakat *, /, % operatörlerinin + ve – operatörlerine göre önceliği vardır.
Karşılaştırma operatörleri
C#’ ta 6 adet karşılaştırma operatörü vardır. Bunlar; <(küçüktür), >(büyüktür), <=(küçük veya eşittir), >=(büyük veya eşittir), ==(eşittir), !=(eşit değildir).
Karşılaştırma operatörleri aritmetik operatörlerden düşük önceliklidir.
<, >, <=, >= operatörleri == ve != operatörlerine göre önceliklidir fakat aynı satırda olduklarında eşit önceliğe sahiptir.
Bitsel operatörler
Bitsel operatörler &(bitsel ve), ~(bitsel değil), |(bitsel veya), ^(bitsel özel veya) operatörleridir. Sayıların kendileri yerine bitlerini kullanan operatörlerdir.
- &(ve) işlemi karşılıklı basamaklardan her ikisi de 1 ise ilgili basamağında 1 tutar, diğer durumlarda 0 tutar.
- ~(değil) operatörü operandının her basamağını tersleştirip tutar.
- |(veya) işlemi karşılıklı basamaklarından herhangi birisi 1 ise ilgili basamağında 1 tutar, diğer durumlarda 0 tutar.
- ^(özel veya) işlemi karşılıklı basamakları farklıysa ilgili basamağında 1 tutar, diğer durumlarda 0 tutar.
Bitsel operatörler aritmetik operatörler ve karşılaştırma operatörlerinden düşük önceliklidir fakat bu operatörler aynı satırda olduklarında aralarındaki öncelik sıralaması &(bitsel ve), ^ (bitsel özel veya), |(bitsel veya) şeklindedir.
Mantıksal operatörler
C#’ ta 3 adet mantıksal operatör bulunmaktadır. Bunlar; &&(ve), !(değil), ||(veya) operatörleridir.
- ||(veya) operatörü iki değerden birisi doğru ise doğru, ikisi de yanlış ise yanlış değerini döndürür ayrıca önceliği en az olan mantıksal operatördür.
- &&(ve) operatörü iki değerin ikisi de doğru ise doğru, en az birisi yanlış ise yanlış değerini döndürür.
- &&(ve), ||(veya) operatörleri aritmetik, karşılaştırma ve bitsel operatörlere göre düşük önceliklidir fakat kendi aralarındaki öncelik sıralaması &&(ve), ||(veya) şeklindedir.
- !(değil) operatörü aritmetik operatörlerden (++)arttırma ve (--)eksiltme operatörleri ile eşit önceliklidir.
Atama ve işlemli atama operatörleri
=(atama) operatörü bir değişkene herhangi bir değer atamak için kullanılır.
*=, /=, +=, -=, &=, ^=, |= gibi operatörlere işlemli atama operatörü denir. Kullanımı şu şekildedir;
a=a+b yerine a+=b
a=a/b yerine a/=b
a=a^b yerine a^=b
Atama ve işlemli atama operatörleri aynı satırda yer alıyorsa öncelik sıralamaları soldan sağa eşittir fakat genel olarak bakıldığında bu operatörler öncelik sıralaması bakımından en son sırada yer alır.
Özel amaçlı operatörler
- ?: operatörü: C#’ ta üç operand alan tek operatördür. Kullanımı şu şekildedir;
koşul ? doğru_değer : yanlış değer - () tür dönüştürme operatörü: Tür değiştirmek için kullanılan bir operatördür.
(değiştirilecek tür) değişken_yada_sabit - [] operatörü: Dizilerde elemanın dizinini belirtmek için kullanılır.
- + ve – operatörü: Bir değişkenin pozitif veya negatif olmasını sağlar. Ayrıca + operatörü iki string(katar)’i birleştirmekte de kullanılır. Kullanımı şu şekildedir;
string a = “Test“;
string b = “Deneme”;
string c = a + b;
olarak ifade edildiğinde c değişkenine "TestDeneme" atanmış olur.
- 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.