Konuyu Oyla:
  • Toplam: 0 Oy - Ortalama: 0
  • 1
  • 2
  • 3
  • 4
  • 5
   
Konu: C# - Atama Operatörleri {23}
Hera
*
avatar
Yüzbaşı
Durum: Çevrimdışı
Seviye Puanı: 9
Yaşam Puanı: 42 / 201
Deneyim: 5 / 100
Rep Sayısı: 27
Mesaj Sayısı: 101
Üyelik Tarihi: 13.04.2019
     
Yorum: #1
C# - Atama Operatörleri {23}
20.05.2019 20:16
= (Atama) Operatörü

Bir dedğişkene herhangi bir değer atama kiçin kullanılır. Kullanımına aşina olduğunuz bu operatör ile ilgili söylenecek çok fazla şey yok aslında. Bilmeniz gereke nen önemli nokta = operatörünün atama işlemini yaptığı değer üretmesidir. Bu mantıkla aşağıdaki ifadenin geçersiz bir ifade olduğunu söyleyebiliriz;

byte b = 7, a = 1, c;
(c = a) = b;

(c = a) = b; ifadesinin açılımı 1 = b dir. Çünkü c = a, 1 değerini üretir. 1 = b gibi bir ifade olmayacağı için (c = a) = b geçersizdir.

Ancak aynı işlem aşağıdaki gibi yapılabilir;

byte b = 7, a = 1, c;
c = a = b;

İşlemli Atama Operatörleri

"=,/=,%=,+=,-=,<<=,>>=,&=,^=,|= gibi opreatörler işlemli atama operatörleridir. Bu operatörler bir işlemin operandı işlem sonucunda atanan değişken ile aynı olduğu zaman kullanılırlar. Örneğin;

a = a + b; yerine a += b;
a = a / b; yerine a /= b;
a = a << b; yerine a <<= b;
a = a ^ b; yerine a ^= b;


Özel Amaçlı Operatörler

Daha önce de denildiği gibi bu gruptaki operatörlerin genel bir amacı yoktur. Her biri farklı amaçlar için kullanılmaktadır. Bu başlık altında bu operatörlerden bazılarını inceleyeceğim. Burada detaylı olarak anlatmadığım operatörler bu operatörleri ilgilendiren konularda detaylı olarak anlatacağım.

?: Operatörü (Ternary Operator)
Bu opreatör C#'ta 3 operand alan tek operatördür. Bu yüzden genellikle ternary operator olarak adlandırılır. Bu konudan sonra göstereceğim if-else yapı bloklarının yaptığı işe benzer bir iş yapmaktadır.

koşul ? doğru_değer : yanlış_değer

koşul ifadesinin true ya da false olmasına göre üretilen değer değişmektedir.

Ternary operatörünün kullanımına örnek erelim. Aşağıdaki programı derlerseniz daha iyi anlarsınız.
Kod:
using System;

namespace C13
{
    class Program
    {
        static void Main()
        {
            int sayi;
            Console.Write("Kalem sayısını girin : ");
            sayi = Convert.ToInt32(Console.ReadLine());
            string str = "kalem";
            str = str + (sayi == 1 ? " " : "ler");
            Console.WriteLine(str);
        }
    }
}


( ) Operatörü (Tür Dönüştürme Operatörü)

() Operatörü tür dönüştürme operatörü olarak bilinir. Başlarda bu konuyu detaylıca anlatmıştım. Ancak hatırlatma amaçlı bu operatörün kullanımını kısaca göstermek istiyorum.

(tür)ifade;
Mesela;
byte a = 10;
int b = (int)a;


[ ] Operatörü (İndeks Operatörü)

Bir opreatör diziler konusunda ele alınacağı için şimdilik sadece dizilerin elemanlarına ulaşmak için kullanılan bir operatör olduğunu bilmeniz yeterli olacaktır.

+ ve - Operatörü (İşaret Operatörleri)

Bu operatörler bir değişkenin negatif ya da pozitif olmasını ayarlar. Örneğin;

uıint a = 30;
int b = (int)-a;
Console.WriteLine(b);


ifadelerinde b değişkenine a'nın negatifi atanmıştır. Aynı kullanım - operatöri içinde geçerli olduğu için ayrıca örnek vermeye gerek duymuyorum.

+ operatörünün diğer bir kullanım yeri ise string türünde nesnelerin arka arkaya eklemede (strin concatenation) görülür. İki string nesnesi aşağıdaki gibi arka arkaya eklenir;

string s1 = "www.cyberizm";
string s2 = ".org";
string s3 = s1 + s2;


s3 değişkenini WriteLine metodu ile yazdırdığımız da ekrana "www.cyberizm.org" çıkacaktır.

&, *, -> ve sizeof Operatörleri (Gösterici Operatörleri)
&, * ve -> operatörlerine genel olarak gösterici operatörleri denilmektedir. C ve C++ dillerini bilenler bu operatörleri sıklıkla kullanmışlardır. C#dilinde bu operatörlere ihtiyaç duymuyoruz. Ancak bazı durumlarda özellikle alt seviye işlemlerde güvensiz kod (unsafe) yazarken bu operatörleri kullanabiliriz. Güvensiz kod yazma ile ilgili ayrıntıları ileri ki konularımda detaylıca anlatacağım.

. Opreatörü (Nokta)

Nokta operatörü, bir sınıfın ya da yapının elemanlarına ulaşmak için kullanılır. Örneğin, Console sınıfının WriteLine metoduna aşağıdaki gibi erişiriz;

Console.WriteLine();

new Operatörü
new hem bir opreatör hem de bir anahtar sözcüktür. new'in anahtar sözcük olara kullanımı ile ilgili olarak sınıflar konusuna geçtiğimde anlatacağım. Operatörler olarak kullandığımızda ise yeni bir nesne oluşturur. New operatörü hem referans tipleri için hem de değer tipleri için kullanılabilir. Değişken tanımlamada nasıl kullanıldığını göstermiştim. Referans olarak ayrı ama.

Sınıf1 s = new Sınıf1();

Bu şekilde kullandığımızda Sınıf1'in yapıcı işlevi çağırılmaktadır. Sınıflar ve yapıcı işlevler konusu ilerleyen konularımda anlatacağım.
new operatörü aynı zamanda aşağıdaki gibi de kullanılabilir.

int i = new int();

Bu kullanımda ise değer tiplerinin varsayılan değerleri değişkene atanır. Yukarıda ki ifade ile i değişkenine 0 atanmıştır. Diğer değer türlerinin varsayılan değerlerini başlarda anlatmıştım.

checked ve unchecked Operatörleri

Bu operatörleri baya bir detaylı incelediğim için değinmeyeceğim konu linki;
C# - checked ve unchecked anahtar sözcüğü

typeof Operatörü

type of operatörü çalışma zamanında herhangi bir türe ilişkin System.Type sınıfı türünden bir nesne üretir. Daha önce tarılarsanız nesnelerin GetType() metotlarınında System.Type türünden bir türe geri döndüğünü söylemiştim. Aşağıdaki program type operatörü ile GetType() metodunun kullanımlarına güzel bir örnek verdim.
Kod:
using System;

namespace C13
{
    class Program
    {
        static void Main()
        {
            Type t1 = typeof(Program);
            Program cyberizm = new Program();
            Type t2 = cyberizm.GetType();
            Console.WriteLine(t1.ToString());
            Console.WriteLine(t2.ToString());
        }
    }
}
Alinti
DARKDAYS
*
avatar
Albay
Durum: Çevrimdışı
Seviye Puanı: 30
Yaşam Puanı: 724 / 731
Deneyim: 25 / 100
Rep Sayısı: 459
Mesaj Sayısı: 1206
Üyelik Tarihi: 08.04.2017
      
Yorum: #2
RE: C# - Atama Operatörleri {23}
21.05.2019 16:36
Teşekkürler, Emeğine Sağlık Smile

Parmak uçlarına bak, parmak izlerini görüceksin ve o izlerden ne önce, ne şimdi, ne daha sonra olucak.
Dünya üzerinde 150 Milyar insan yaşamış, biri o parmak izlerine sahip değil !

MİRROR
Alinti
DeathWing
*
avatar
Yüzbaşı
Durum: Çevrimdışı
Seviye Puanı: 8
Yaşam Puanı: 37 / 196
Deneyim: 84 / 100
Rep Sayısı: 23
Mesaj Sayısı: 97
Üyelik Tarihi: 26.03.2019
     
Yorum: #3
RE: C# - Atama Operatörleri {23}
22.05.2019 22:59
Teşekkürler, Emeğine Sağlık Smile
Alinti
Dessy
*
avatar
Yarbay
Durum: Çevrimdışı
Seviye Puanı: 22
Yaşam Puanı: 181 / 532
Deneyim: 30 / 100
Rep Sayısı: 113
Mesaj Sayısı: 592
Üyelik Tarihi: 20.11.2015
     
Yorum: #4
RE: C# - Atama Operatörleri {23}
23.05.2019 12:10
Teşekkürler, Emeğine Sağlık Smile

İnstagram Sınırsız Hesap > Git
Youtube Sınırsız Hesap > Git
Sosyal Medyada Sınırsız Hesap Açma p2 Yakında.
Alinti
koloradop12
*
avatar
Teğmen
Durum: Çevrimdışı
Seviye Puanı: 1
Yaşam Puanı: 0 / 15
Deneyim: 60 / 100
Rep Sayısı: 0
Mesaj Sayısı: 7
Üyelik Tarihi: 25.05.2019
     
Yorum: #5
RE: C# - Atama Operatörleri {23}
25.05.2019 03:43
Teşekkürler, Emeğine Sağlık Smile
Alinti



1 Ziyaretçi