Erdinç Yaşan

C# ile değişkenlere giriş

Şimdi efendim, konuya nasıl başlanır bilemiyorum ama çekelim bakalım besmelemizi, bismillah…

Fark ettiyseniz bazen Console.WriteLine(“”) methodunun içerisinde yazmış olduğumuz şeylere string dedim ve evet string de bir değişken türü. Ve bu tür metinsel ifadelerdir, evet efendim string ifadeler tınak içinde tanımlanır ve sonrasında kullanılmak üzere bellekte bir yer kaplar.

Tanımlamayı yapar iken değişkenlerin önce tipleri yazılır sonra da isimleri daha sonrasında atama operatörü olan = ifadesi yazılır ve değişkenin içerisinde tutacağı değer atanır.

efendim yukarıda gördüğünüz gibi önce string ile değişkenimin tipini belli ettim daha sonrasında degiskenAdi diye bir isimlendirme yaptım = ifadesi ile içerisine bir şeyler koyacağımı belirttim ve eşittir ifadesinin sağ tarafına ne koyacağımı belirttim.

string değişken tipi içerisine sadece çift tırnak içerisinde yazılmış ifadeleri alır içinde ne yazdığının pek bir önemi yok istediğinizi yazabilirsiniz eğer string içerisine atama yapıyorsanız atama yaptığınız şeyin bir string olması gerekiyor biliyorum çok fazla string dedim ama bu gerekli.

Örneğin ben kullanıcıya 3 kere Al şu takatukaları takatukacıya götür takatukacı takatukaları takatukalamazsa al da gel yazdırmak istiyorum benim her seferinde bu metni Console.WriteLine() methodu içerisine yazmama gerek yok.

Yukarıdaki görselde gördüğünüz gibi önce programıma string tipinde ve degiskenAdi isimli bir değişkenimin olduğunuz söyledim artık benim programım degiskenAdi adlı değişkenimi biliyor yehu, bunu kullanabilirim. Fark ettiyseniz Console.WriteLine içerisindeki ifademde tırnak işaretleri kullanmadım eğer isterseniz tırnak işareti kullanınca ne olur aşağıda deneyebilirsiniz.

Yukarıdaki çalıştırılabilir kod içerisinde görselden farklı olarak bir adet tırnak işaretleriyle ekli Console.WriteLine() methodu ekledim çıktıyı kendiniz de görebilirsiniz.

C# Büyük küçük harfe duyarlı bir dildir yani siz değişken adınızı nasıl tanımladıysanız aynı şekilde kullanmalısınız örneğin

string degiskenAdi=”test”

yazdıysanız gidip Console.WriteLine(degiskenadi); diyemezsiniz çünkü degiskenadi ve degiskenAdi farklı şeylerdir ve bizim programımız degiskenadi’ni bilmiyor.

Efendim bu konu daha çok değişkenlere giriş niteliğinde olduğu için tüm değişkenleri öğretmekten ziyade değişken tanımlamaları nasıl yapılır onunla ilgili detaylara ineceğim.

Örneğin c# içerisinde istediğiniz şekilde değişken tanımlayamazsınız bazı katı kurallar mevcut ve bu sizin kodunuzun doğru çalışması içindir.

Örneğin değişken isimleri rakamlar ile başlayamaz

Yani string 1degisken=”test”; diyemezsiniz demeye çalışırsanız önce IDE tarafından hata alırsınız eğer kararlıysanız ve projeyi çalıştırmaya çalışırsanız builder tarafından hata alacaksınız.

Gördüğünüz gibi ben denedim ve benim kodum bas bas bağırmıyor kodlarınızı bağırtmayınız efendim.

Bir diğer husus ise boşluk bırakamazsınız yani string degisken adi=”test”; Yapamazsınız!

Gördüğünüz gibi vsCode üzerinde bas bas bağırıyor tekrardan.

Aynı zamanda değişken isimlerinde özel karakterler kullanamazsınız bunlar neler diye soracak olursanız (!,?,*,-) ifadeleridir aynı zamanda = ifadesi de kullanılamaz.

Efendim gördüğünüz üzere tekrardan bas bas bağırıyor ama o da ne ? En alt satırdaki string deg=sken=”test”; ifadesi bağırmıyor.

Bunun sebebi atama operatörünün özelliği yüzünden aslında burada tek bir degişken yerine iki değişken oluşturuyoruz ve atama işlemi sağdan sola yapıldığı için şu şekilde işlem yapılıyor

  1. Önce string sken=”test”; özelliği çalışıyor ve bizim sken adlı bir değişkenimiz oluyor
  2. ve sonrasında string deg=sken; özelliği çalışıyor ve sken değişkeninin içeriği tamamen deg adlı değişkenin içine atılıyor

Ne inanmıyor musun?

Gel birlikte bakalım.

Çalıştır butonuna basın ve ne olacağını görelim.

Aslında bilerek hata yaptım çünkü sken diye bir şey program bilmiyor atama işlemleri yapılmadan önce tüm değişkenlerin tanımlanmış olması gerek

yani program sken değişkenini biliyor olsa çalışmaya devam edecek fakat onu bilemiyor.

2. satıra biraz boşluk bıraktım oraya string sken; yazınca ne oluyor görebilirsiniz.

Program benim dediğim gibi çalışıyor, ve şimdi bir yeni özellik daha eklendiniz değişkenleri oluşturabilmek için illaki başlangıçta değer atamanıza gerek yok, yani string test; yapabilirsiniz.

Ama dikkat etmeniz gereken bir husus var içerisinde herhangi bir değer olmayan değişkeni ekrana yazdırmaya kalkarsanız hata alırsınız

Yukarıdaki kodu çalıştırmaya çalıştığınızda aşağıdaki gibi bir hata alırsınız.

Bu hatanın sebebi içerisine atama yapmadığımız içindir efendim.

Fakat biz değişkeni tanımladıktan sonra da içerisine değer atabiliriz nasıl mı?

Yukarıdaki görseldeki kod doğru bir koddur ve çalışabilir herhangi bir hata yokdur şimdi madem atama işlemlerini yapıyoruz şunu da öğrenmek gerekir içerisine bir değer atadığınız değişkenin içeriğini değiştirebilirsiniz, adı değişken çünkü 😂

Yani şöyle yapacak olursam ;

Değişkenlerin kullanılmadan önceki son hallerinin değişip değişmediği çok önemli son satırdaki fonksiyon çalışmadan önce degisken adlı değişkenin içeriği değiştirildiği için ekrana ilk baştakinden farklı bir değer yazdırılacak.

Son hali ne ise onu kullanırsınız efenim aklınızda dursun.

Değişken tanımlamalarında alt satır ifadesini kullanabilirsiniz örneğin string benim_degiskenim=”test”; doğru bir ifadedir ve herhangi bir sıkıntı çıkarmaz aynı zamanda string ben1m_Degiskenim; de doğru bir ifadedir çünkü yukarıya çıkıp bakarsanız değişkenlerin başında herhangi bir rakam kullanamazsınız demiştim.

Peki başka var mı böyle kullanamadığımız şeyler.

Olmaz mı efendim, C# kendisinin kullandığı şeyleri kullanamazsınız örneğin windows bilgisayar programlarında kullanıcının fare hareketlerini alan bir event isminde bir şey mevcut siz bunun ismini olduğu gibi kullanamazsınız yani string event=”test”; yapamazsınız!

Zaten gördüğünüz gibi bas bas bağırıyor. Ama eğer bir psikopatlık yapmak isteyip gene de ben kullanıcam ulan derseniz başına @ karakteri koyarak kullanabilirsiniz yani,

ifadesi doğru bir ifadedir ve şu şekilde kullanılır;

Yani kullandığınız yerde de oluşturduğunuz gibi kullanmalısınız.

Değişkenlerin değerleri birbirleri arasında transfer edilebilir, ne demek şimdi bu derseniz.

Elimizde bir string verinin olduğunu düşünelim ve içeriği Hello olsun yani

string test=”Hello”;

diğer değişkenimiz de string test2=”World”; olsun.

Eğer biz test2=test; yapar isek Dikkat edin başlarına string eklemedim çünkü bu değişkenler zaten tanımlandı!.

Yukarıdaki ifade doğru bir ifadedir, ve eğer test2 değişkenini ekrana yazdırmak isterseniz alacağınız sonuç Hello olur isterseniz deneyelim.

Aynı zamanda bir satır içerisinde birden fazla değişken oluşturabilirsiniz, örneğin 2 adet string oluşturmak istiyorsunuz

string test ;

string test2;

yerine sadece;

string test,test2; ifadesini kullanabilirsiniz.

Yukarıdaki tüm ifadeler doğrudur fakat ekrana yazdırmaya çalışırsanız hata alırsınzı efenim.

aynı zamanda bir satırda birden fazla değişken oluştururken içerisine atama da yapabilirsiniz yani

string test=”Hello”,test2=”World”; şeklinde bir ifadeyle tek satırda 2 değişken tanımladım vaov;

figure1

Bu arada zaten hali hazırda dosyanızın içerisinde( bu konuyu daha sonra konuşacağız) tanımlanmış olan bir değişkeniniz varsa tekrardan tanımlama yapamazsınız yani string test; string test; diyemezsiniz!

Efendim yukarıdaki test ifadesinin altı sarı çizgili bunun sebebi bir uyarı olmasıdır, tanımlama yaptın fakat kullanmadın yani bellekte gereksiz yer ayırdın bu programı kullanacak olan kişinin ram’ini gereksiz yere kullandın dikkat et demek istiyor. Gelelim kırmızıya bunun sebebi ise zaten böyle bir değişken tanımlı olduğundan hata var ulan diye bağırıyor bize.

Bir üst görselde(figure1) iki adet değişken oluştur e madem oluşturduk gelin bunları birlikte ekrana yazdıralım.

Console.WriteLine() ile haşır neşir olurken birden fazla metin yazdırmayı öğrendik değişkenler için de ek bir durum söz konusu değil eğer iki değişkeni aynı Console.WriteLine() içerisinde yazdırmak istiyorsak araya bir + ifadesi sıkıştırmalıyız

Gördüğünüz gibi yukarıdaki ifadeyi ekrana yazdığınızda birleşik yazıyor çünkü her iki string’in içerisinde de boşluk bırakmadık, araya boşluk bırakmak isteseydik bunu nasıl yapabilirdik?

Bu işlemin birden fazla yöntemi var sırayla gelin inceleyelim.

  1. test stringinin sonuna boşluk koymak (tırnak içinde)
  2. test2 stringinin başına boşluk koymak (tırnak içinde)
  3. Console.WriteLine() ifadesinde iki stringin arasına boşluk koymak

Ben 3. olanı yani zor olanı yaptım siz de diğer ikisini yukarıdaki kodu düzenleyerek deneyebilirsiniz unutmayın değişkenlerin içeriklerini değiştireceksiniz.

Efendim özetle siz iki string’i toplama işlemi ile toplarsanız ortaya başka bir string çıkar ve bu stringi değişkenin içerisine de atıp kullanabilirsiniz, örneğin;

string test=”Hello”,test2=”World”;

string test3=test+” “+test2;

eğer test3 değişkenini ekrana yazdırırsanız nolur? deneyin bakalım, ama yok öyle armut piş ağzıma düş, yazın ve deneyin efenim.

şunu unutmayın eşitliğin önce sağ tarafı alınır çıkan sonuç sol tarafın içeriğine aktralır. Yani siz bir değişkenin içeriğini kendi içeriğine atabilirsiniz!

Vaov inception yani diyorsanız evvet doğru diyorsunuz.

string test=”Hello”;

test=test+” World”;

yukarıdaki satırlar tamamen doğrudur ve test değişkeninin son içeriği Hello world olur.

Eğer siz bir değişkenin içeriğini kendine ekliyorsanız şu işlemi de yapabilirsiniz!

string test=”Hello”;

test+=” World”;

Yukarıdaki ifadenin de son şekli “Hello World” olacaktır isterseniz son iki örneği deneyebilirsiniz.

yani özetle test=test+ ” World” ile test+=” World” aynı ifadedir.

Sanırım en uzun yazım bu oldu fakat temeli sağlam atmak gerekir öyle değil mi ?

Exit mobile version