C# Değişkenler

C# değişkenler konusu, arkadaşlar merhaba, bugünkü yazımız “aynı zamanda bloğumun da ilk yazısı olan” her programlama dilinde ortak olarak kullanılan ve programlamanın en temel konusu olan C# DEĞİŞKENLER hakkında olacak. Ders sonucunda değişkenlere neden ihtiyaç duyulduğunu, değişkenlerin tanımlanma kurallarını, değişken türlerini, değişkenlerin faaliyet alanları gibi birçok temel konuda bilgi sahibi olacaksınız.

Haydi başlayalım !

C# DEĞİŞKENLER
Değişken (variable) bir değeri tutan depolama konumudur. Değişkeni, bilgisayarınızın belleğinde geçici bilgi tutan bir kutu gibi düşünebilirsiniz. Programdaki her bir değişkene, kullanıldıkları ortamda değişkeni benzersiz olarak tanımlayan tek ve benzersiz bir ad vermek zorundasınız. Değişkenin değerine bu ad ile erişiriz. Değişkenleri aklımızdan bir sayı tutmaya benzetebiliriz. Bir şekilde program süresince (İlgili kod blokları arasında veya program açık kaldığı sürece) bize gerekli olacak değerleri hafızada tutmanın bir yoludur.

c# değişkenler

Çoğu programlama dilinde değişkenler tanımlandıktan sonra direkt olarak programda kullanılabilirler. Ancak C#’ta değişkeni tanımladıktan sonra ayrıca bir de ilk değer atamak zorundayız. Aksi bir durumda değişkeni programımız içinde kullanamayız.

 

C# değişkenlerde hafıza kullanımı

C# değişkenlerde hafıza kullanımı

DİKKAT
– Her değişkenin bir türü ve ismi vardır.
– Tip o hafıza alanında saklanacak verinin tip bilgilerini ifade eder.
– İsim o hafıza bölgesine ulaşmamız için bir etikettir.
– Yalnızca harf (büyük ve küçük), rakam ve alt çizgi karakterini kullanabilirsiniz.
– Tanımlayıcı, bir harf ile (alt çizgi harf olarak kabul edilir) başlamak zorundadır.
ÖNEMLİ
C# büyük küçük harfe duyarlı bir dildir: footballTeam ve FootballTeam aynı anlama gelen tanımlayıcılar değildir.

 

Değişken tanımlama formatı;
veritipi veriAdı1, veriAdı2, … ;

int sayi1; /* bir tam sayıyı depolar (152) */
float sayi2=5.6f; /* bir ondalıklı sayıyı depolar (65.324) */

Değişkenleri Adlandırmak
Değişken tanımlamakta karışıklıktan kaçınmanıza yardımcı olan adlandırma kurallarına bağlı kalmalısınız. Bazı öneriler aşağıda listelenmiştir:
– Tanımlayıcılar da alt çizgi kullanmayın.(Öneridir!)
– Yalnızca küçük-büyük harf ayrımına bağlı olarak değişen tanımlayıcı yaratmayın.
Örneğin, aynı anda kullanılan iki değişkenden birini degiskenim olarak, diğerini de Degiskenim olarak adlandırmayın, çünkü çok kolay karışıklığa neden olabilir.
– Adı küçük harfle başlatın.
– Birden fazla kelimeden oluşan tanımlayıcılarda, ilk kelimeden sonra gelen kelimenin ilk harfini büyük yazın (Bu, camelCase gösterim biçimi olarak bilinir).

ÖNERİ
Örneğin, skor, futbolTakimi, _skor ve FutbolTakimi adlarının tümü geçerli bir değişken adıdır fakat sadece ilk ikisi önerilir.

DİKKAT
C# Değişkenlerde;
– İlk karakter rakam olamaz!
fahrenheit, santigrat, toplam, a123, i1, i2, i3, _12abc
– Büyük veya küçük harfler kullanılabilir
toplam, Toplam, TOPLAM
– Alt çizgi (_) ilk karakter veya arada/sonda kullanılabilir. (Ancak tavsiye edilmez.)
ogrenci_no, _ogrNo, __ogr_no_
– Değişken isimleri boşluk, tire veya tırnak içeremez
“ogrenci” ,ogrenci-no, ogrenci no
– Değişken isimleri büyük/küçük harf duyarlıdır
toplam, Toplam ve toplaM hepsi farklı değişkenlerdir.
– Değişken isimleri Türkçe karakter içermemelidir. (Tavsiye edilmez.)
maaş değişkeni yerine maas kullanılmalı.

C# Değişkenlerini Bildirmek
Değişkenler değerleri tutar. C#, depolayabileceği ve işleyebileceği çok sayıda farklı değer türüne sahiptir: tam sayı, kayan nokta sayısı ve karakterler dizesi gibi. Bir değişken bildirdiğinizde, içinde ne tür bir değişken tutacağını da belirtmelisiniz.

int yas; // Değişken tanımlandı.
yas=25; // Değişkene bir değer atandı.

HATIRLATMA
Eşittir işareti (=), sağ tarafındaki değeri sol tarafındaki değişkene atayan bir atama işlecidir.

C# Değişkenler Temel Veri Türleri
C#, temel veri türleri olarak adlandırılan birkaç yerleşik türe sahiptir. Aşağıdaki tabloda, C# dilinde en çok kullanılan temel veri türleri ve her birinde depolayabileceğiniz değer oranı listelenmiştir.

C# değişken boyutları

Aşağıda C# değişken boyutları hakkında detaylı bir tablo görebilirsiniz.

C# değişken türleri

C# değişken türleri

Atanmamış Yerel C# Değişkenler
C#, değer atanmamış değişkeni kullanmanıza izin vermez. Bir değişkeni kullanmadan önce, değişkene bir değer atamak zorundasınız; aksi takdirde programınız derlenmeyebilir. Bu koşul, Definite Assignment Rule (Kesin Atama Kuralı) olarak adlandırılır. Örneğin, aşağıdaki ifadeler, yas değişkenine bir değer atanmadığı için derleme hatası verecektir:

int yas;
Console.WriteLine(yas); //derleme hatası

Aritmetik İşleçleri Kullanmak
C#, dört işlemin aritmetik işleçlerini destekler: toplama için artı işareti (+), çıkarma için eksi işareti (-), çarpma için yıldız (*) ve bölme için de (/)yüzde için % işareti. +, -, *, / ve % simgeleri, yeni değerler yaratmak için değerler üzerinde “işlem” yaptığından, işleçler olarak adlandırılır.

long indirimTutari; //Tanım
indirimTutari = 750 * 20 / 100; //İşlem

HATIRLATMA
İşlecin üzerinde işlem yaptığı değerler işlenen (operands) olarak adlandırılır. 750*20 deyiminde, * işleç, 750 ve 20 de işlenendir.

İşleçler ve Türler
Tüm işleçler, tüm veri türlerine uygulanamaz. Bir değer üzerinde kullanabileceğiniz işleçler, değerin türüne bağlıdır. Örneğin, char, int, long, float, double ya da decimal veri türlerinde tüm aritmetik işleçlerini kullanabilirsiniz. Bununla birlikte, string ya da bool türü değişkenler üzerinde, artı işleci dışında aritmetik işleçleri kullanamazsınız.
Dize değerlerini birleştirmek için + işlecini kullanabilirsiniz. Beklenmeyen bir sonuç verebileceğinden, dikkatli olmalısınız. Örneğin, aşağıdaki ifade konsola “431” (“44” değil) yazar:

Console.WriteLine(“43” + “1”);

HATIRLATMA
C# da ( ) imleri parantez, { } imleri küme parantezi, [ ] imleri ise köşeli parantez olarak adlandırılır.

C# Değişkenleri Artırmak ve Azaltmak
Bir değişkene 1 eklemek isterseniz, + işlecini kullanabilirsiniz:

count = count + 1;

Bununla birlikte, bir değişkeni 1 artırmak oldukça yaygındır, C# dili sadece bu amaç için ayrı bir işleç sağlar: ++ işleci. count değişkenini 1 artırmak için aşağıdaki ifadeyi yazabilirsiniz: count++;
Benzer şekilde, C#, bir değişkenden 1 azaltmak için kullanabileceğiniz – işleci sağlar: count–;

C# Değişkenler – Önek ve Sonek
++, artırma ve ––, azaltma işleçlerini, değişkenden önce ve sonra yerleştirebilirsiniz. İşleç simgesinin değişkenden önce yer alması, işlenenin önek (prefix) biçimi olarak ve değişkenden sonra yer alması da sonek (postfix) biçimi olarak adlandırılır. Örneğin:

count++; // sonek ++count; // önek
count--; // sonek -—count; //

ÖRNEK

int x = 42;
Console.WriteLine(x++);
// x şimdi 43’tür, 42 yazılır
x = 42;
Console.WriteLine(++x);
// x şimdi 43’tür, 43 yazılır

Kapalı Türde Yerel C# Değişkenler
Bir değişkene atadığınız değerin, değişken ile aynı türde olması gerektiğini bahsetmiştik. Örneğin, int türünde değişkene sadece int türü değer atayabilirsiniz. C# derleyici, bir değişkene başlangıç değeri atamak için kullanılan ifadenin türünü hızlı bir şekilde ortaya çıkarabilir ve değişkenin türü ile aynı değilse size bildirebilir. Ayrıca, C# derleyicisinden bir ifadedeki değişkenin türünü bulmasını ve aşağıdaki gibi tür yerine var anahtar sözcüğünü kullanarak değişken bildirdiğinizde, bulduğu türü kullanmasını isteyebilirsiniz:

var myVariable = 99;
var myOtherVariable = “Hello”;
var yetAnotherVariable; // Hata

Escape Sequence – kaçış dizisi
Ters slaş (\) ve bir karakterden oluşur. Derleyiciye sonraki karakterin özel olarak algılanması işaretini verir. Sık kullanılanlar
\n sonraki satıra geç
\t sonraki sekmeye geç
\r satır başına dön
\\ ters slaş karakteri
\’ tek tırnak
” çift tırnak : çift tırnak ‘ ” ‘ şeklinde yazılabilir ancak string lerin içinde ” \” ” şeklinde yazılmalıdır.

C# Değişken Kullanma

ÖRNEK

using System;
class degiskenler
{
static void Main()
{
byte a=5;
Console.WriteLine(a);
}
}

ÖRNEK

using System;
class degiskenler
{
static void Main()
{
byte a=5;
byte b=8;
Console.WriteLine(a+b);
}
}

ÖRNEK

using System;
class degiskenler
{
static void Main()
{
string a="Viki", b="kitap";
Console.WriteLine(a+b);
}
}

ÖRNEK

using System;
class degiskenler
{
static void Main()
{
string a;
a=Console.ReadLine();
Console.WriteLine(a+" metnini yazdınız.");
}
}

ÖRNEK

using System;
class degiskenler
{
static void Main()
{
int a, b;
a=20; //Bu satır olmazsa?
b=a;
Console.WriteLine(b);
}
}

ÖRNEK

using System;
class degiskenler
{
static void Main()
{
Console.ReadLine()="metin";//Sizce ne olur ?
string a=Console.ReadLine();
Console.WriteLine(a);
}
}

C# DEĞİŞKENLER HATALI KULLANIMLAR
– Aynı satırda farklı türden değişkenler tanımlamaya çalışma. Örneğin aşağıdaki örnek hatalıdır:

int a, string b;

– Değişkene uygunsuz değer vermeye çalışma. Örnek:

int a;
a="metin";

– Değişkeni tanımlamadan ve/veya değişkene ilk değer vermeden değişkeni kullanmaya çalışma.

– Değişken tanımlaması ve/veya değer vermeyi yanlış yerde yapma. Örnek:

using System;
class degiskenler
{
int a=5;
static void Main()
{
Console.WriteLine(a);
}
}

-Diğer using dışındaki bütün komutlarda da olduğu gibi değişken tanım ve değer vermelerini de Main bloğunun içinde yapmalıyız.
-Bazı değişken türlerindeki değişkenlere değer verirken eklenmesi gereken karakteri eklememek.

using System;
class degiskenler
{
static void Main()
{
float a=12.5;
Console.WriteLine(a);
}
}

-Ondalık sayıların ondalık kısmını ayırırken nokta (.) yerine virgül (,) kullanmak.

using System;
class degiskenler
{
static void Main()
{
float a=12,5f;
Console.WriteLine(a);
}
}

-Metinsel c# değişkenler matematiksel işlem yapmaya çalışmak.

using System;
class degiskenler
{
static void Main()
{
string a="1", b="2";
int c=a+b;
Console.WriteLine(a);
}
}

-Bir c# değişkenini birden fazla kez tanımlamak. Örnek:

using System;
class degiskenler
{
static void Main()
{
string a;
string a="deneme";
Console.WriteLine(a);
}
}

-C# Değişkenlere değer verirken yanlış şekilde değer vermek.

ÖRNEK

string a=deneme;
Console.WriteLine(a);

C# Değişkenler Faaliyet Alanları
Bildirilmiş bir değişkeni belirli bir program parçasında kullanabiliriz. Bir değişkenin kullanılabildiği kullanım alanına o değişkenin Faaliyet Alanı (scope) denir.
Bir metodun bir ana bloğu olmak zorundadır. Fakat o ana bloğun içinde biz istediğimiz kadar iç içe ve ayrık blok açabiliriz. C#’ta yerel değişkenler bildirim yerinden sonra bildirildikleri blokta ve o bloğun kapsadığı bloklarda kullanılabilir. Fakat blok dışında kullanılamazlar.

{
int a;
{
int b;
}
b=10; //Hata!
a=10; //geçerli
}

-Aynı blokta tanımlanmış global c# değişkenler alt bir blokta kullanılamaz.

{
int a;
{
long a; // Hatalı!
}
}

-Ayrık bloklarda aynı isimli c# değişkenler bildirilebilir.

{
{
long a=2;
}

{
int a = 2;
}
}

C# SABİTLER

C#sabitler, Programımızda bazen değeri hiç değişmeyecek değişkenler tanımlamak isteyebiliriz. Örneğin pi isimli float türünden bir değişken tanımlayıp buna 3.14 değerini verip programımızda pi sayısına ihtiyaç duyulduğunda bu değişkeni kullanabiliriz. Sabit değişkenlerin normal değişkenlerden farkı değişkeni değiştirmek istediğimizde ortaya çıkar, sabit olarak belirtilen değişkeni değiştirirsek derleyici hata verip programımızı derlemez. Bu daha çok uzun program kodlarında işe yarayabilir. Ayrıca C# sabitler C# değişkenlere tanımlandığı satırda değer vermeliyiz. Herhangi bir değişkeni C# sabit olarak belirtmemiz için değişken türünden önce const anahtar sözcüğü kullanılır.

const int a = 5;
const string b ="deneme";
const char c ='s';

Aşağıdaki gibi bir durum, c# sabite tanımlandığı satırda değer verilmediği için hatalıdır.

const int a;
a=5;

Sabit değişkenlere değer olarak C# sabitler, sabit değişken ya da sabit ve/veya sabit değişkenlerden oluşan matematiksel ifadeler verilebilir.

const int a=5;
const int b=a+7;
const int c=a*b;

Aşağıdaki gibi bir durum hatalıdır.

int a=5; const int b=a+8;

EK BİLGİLER
-ReadLine() metodunun tuttuğu değer string türündedir.
-WriteLine() metodunda parantezler arasına girilen değer object türünden olmalıdır. Yani herhangi bir türden değer yazılabilir.
-Bütün değişkenler bir değermiş gibi kullanılabilir ancak değerler değişkenmiş gibi kullanılamaz.
-Eğer bir değişkeni tanımlamış veya tanımlayıp değer vermiş, ancak programımızın hiçbir yerinde kullanmamışsak derleyici hata vermez, sadece bir uyarı verir.

ÖZET
-Nesne kavramından ne anlıyorsunuz?
-Değişken kavramını açıklayınız?
-Değişken tanımlama kuralları nelerdir?
-Değişkene değer atama operatörü nedir?
-Temel veri türleri nelerdir?
– +,-,*,/,%,++ ve – operatörlerinin işlevi nedir?
-Önek ve sonek arasındaki farklılık nedir?
-Sabit ve değişken arasındaki fark nedir?

Evet geldik dersimizin sonuna. Umarım sizlere faydalı olmuştur !

Dilerseniz bir sonraki konumuz olan C# tür dönüşümlerine devam edebilirsiniz.

  1. Tabi ki fırsat buldukça açıklayıcı örnekler paylaşıyorum. Sorun yaşadığınız konularda yardımcı olamaya çalışırım.

    • Mehmet
    • 25 Aralık 2016

    Teşekkürler, oldukça detaylı ve açıklayıcı yazmışsınız. Acaba c# değişkenler konusunda daha fazla örnek paylaşabilir misiniz?