C# Operators (Operatörler)

Merhabalar,

Bu hafta benim için hem zor hem de heyecanlı bir hafta oldu. Eski iş yerimden ayrıldığım için duygusal olarak zorlandım ama yeni işim kariyerimde yeni heyecanlara kapı açacağını düşünüyorum. Bu heyecanı yakalamışken bu serimde yine RoadMap‘e bağlı kalarak “Operatörler (Operators)” hakkında edindiğim yararlı bilgileri ele alacağım.

Bir önceki serimde tür dönüşümünü ele almıştım. Hatırlamak amacıyla konu başlıkları nelerdi anımsayalım. Seriye buradan ulaşabilirsiniz.

  • Tür Dönüşümü
  • Bilinçsiz (explicit) Tür Dönüşümü
  • Bilinçli (implicit) Tür Dönüşümü (checked ve unchecked kullanımı)
  • Referans ve Değer Türleri arasındaki dönüşüm (boxing ve unboxing kullanımı ve amaçları)
  • System.Convert sınıfı ile Tür Dönüşümü ve Metotları

Her seride olduğu gibi bu seriye ilham veren motivasyon cümlesi:

“Zaman en bilge danışmandır”

Plutarkhos

Operatör Nedir?

Operatörler herhangi bir programlama dilin temelidir. Operatörler sayesinde mantıksal ve aritmetik işlemleri yapmak için kullanılan özel karakter ya da karakter topluluğudur diyebiliriz.

Operatörlerin Sınıflandırılması

  • Unary Operatörler: Tek operandı olan operatörler
  • Binary Operatörler: İki operandı olan operatörler
  • Ternary Operatörler: Üç operandı olan operatörler
Unary, Binary ve Ternary Operatörler

İşlevlerine göre operatörleri 6 sınıfta ayırabiliriz. Bunlar:

Aritmetik Operatörler (Arithmetic Operators) Toplama ve çıkarma gibi temel işlemleri yapan operatörlerdir .
Karşılaştırma Operatörleri (Comprasion Operators) İki sayı arasındaki mantıksal ilişkileri yapan operatörlerdir .
Mantıksal Operatörleri (Logical Operators) Mantıksal işlemleri gerçekleştiren operatörlerdir.
Bitsel Operatörler (Bitwise Operators) Değişkenlere ait değerlerin bitleri ile ilgili işlemler yapan operatörlerdir.
Atama ve İşlemli Atama Operatörleri (Assignment Operators)Bir değişkene değer atamak için kullanılan operatörlerdir.
Özel Amaçlı Operatörler (Special Case Operators) Bu gruba giren operatörlerin herhangi bir amacı yoktur. Her biri farklı amaçlar için kullanılmaktadır.
sonek++a = 1b = a++b = 1, a = 2
sonek–a = 1b = a–b = 1, a = 0
++soneka = 1b = ++ab = 2, a = 2
–soneka = 1b = –ab = 0, a = 0

Aritmetik Operatörler (Arithmetic Operators)

+ ve – operatörleriToplama ve çıkarma işlemi yapan operatörlerdir.int i = 10 + 20, int k = 20 – 5
* ve / operatörleriÇarpma ve bölme işlemi yapan operatörlerdir.int i = 5*4, int k = 5/4
% operatörüBirinci operandın ikinci operanda bölümü ile elde edilen kalandır.int c = 10 % 3 -> c = 1
++ (artırma) ve — (eksiltme) operatörleriÖnüne yada sonuna geldiği değişkenlerin değerini bir artırır veya bir azaltır.a++ , –b, ++c, d–

Karşılaştırma Operatörleri (Comprasion Operators)

> ve < operatörleriİki sayının birbirine göre büyüklüğünü veya küçüklüğünü kontrol eder.50 > 60, 50 < 60
>= ve <= operatörleri> ve < operatörleri ile aynıdır. yalnızca karşılaştırılan iki ifadenin eşitliğine de bakar.bool b1 = 50 <= 60, bool b2 = 50 >=60
== ve != operatörleriİki değerin eşit olup olmadığını kontrol eder.bool b1 = 50 == 60, b2 = 50 != 60
as operatörüUygun türler arasındaki dönüşümü sağlar.string s = “10” as string
is operatörüBir nesnenin türünün operand ile verilen türe eşit olup olmadığını kontrol eder.bool b1 = i is int

Mantıksal Operatörleri (Logical Operators)

&& (Mantıksal VE) OperatörüTrue veya false değerindeki operandlarını mantıksal VE işlemine sokarbool a = 5 == 1 && 2 > 5
|| (Mantıksal VEYA) Operatörü True veya false değerindeki operandlarını mantıksal VEYA işlemine sokar bool a = 5 == 1 || 2 >5
! (Mantıksal Değiş Operatörü) True veya false değerindeki operandlarını mantıksal Değil işlemine sokar bool a = !( 5 > 2)

Bitsel Operatörler (Bitwise Operators)

~ (Bitsel Değil) OperatörüTek operand alan ~ operatörü bit seviyesinde Değiş işlemi almaktadır. Yani 1 olan bitleri 0, 0 olan bitleri 1 yapmaktadır.byte b1 = 255, b2 = (byte)~b1
& (Bitsel Ve) OperatörüOperandların karşılıklı bitlerini ve (and) işlemine tabi tutar.byte a = 140, b= 7, c = (a & b)
| (Bitsel Veya Operatörü)Operandların karşılıklı bitlerini veya(or) işlemine tabi tutar. byte a = 140, b= 7, c = (a | b)
^ (Bitsel Özel Veya) OperatörüOperandların karşılıklı bitlerini özel veya(xor) işlemine tabi tutar.x = c ^ b, y = x ^ b, c = y
<< (Bitsel Sola Kaydırma) OperatörüVerilen bir sayının bitlerini istenilen sayı kadar sola ötelemek.byte a = (byte) (b << 1)
<< (Bitsel Sağa Kaydırma) Operatörü Verilen bir sayının bitlerini istenilen sayı kadar sağa ötelemek. byte a = (byte) (b >> 1)

Özel Amaçlı Operatörler (Special Case Operators)

?: Operatörü (Ternary Operator)Bu Operator C#’ta 3 operand olan tek operatördür.int i = a == b ? 1 : 0
() Operatörü (Tür Dönüştürme Operatörü)Tür Dönüştürme Operatörüdür.byte a = 1, int b = (int) a
&,*,-> ve sizeof Operatörleri (Gösterici Operatörleri)C ve C++ dillerinde sıklıkla kullanılır. Bazı durumlarda yani alt seviye işlemlerde güvensiz (unsafe) kod yazarken bu operatörleri kullanırız int* p = &ab
typeof OperatörüÇalışma zamanında herhangi bir türe ilişkin System.Type sınıfından bir nesne üretir.typeof(int)

Operatörler ile ilgili serimizin sonuna geldik. Yararlı bulduğum bilgileri paylaşmaya çalıştım. Bu sayede operatörler ile ilgili bilgilerimizi güncellemiş olduk.

Bir sonraki serimde RoadMap’e bağlı kalarak Akış Kontrol Mekanizmaları (Flow Controls) hakkında edindiğim bilgileri paylaşıyor olacağım. Görüşmek dileğiyle.

Kaynaklar:

Her Yönüyle C# 7.0, Sefer Algan, Pusula Yayincilik,

https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/statements-expressions-operators/operators

Leave a Comment