Translate

17 Aralık 2018 Pazartesi

C# Temel Veri Türleri

C# dilinde temel olarak veri tipleri ikiye ayrılırlar. Bunlar; önceden tanımlanmış veri türleri ve kullanıcı tarafından tanımlanmış veri türleridir. Önceden tanımlanmış veri türleri de kendi arasında referans tipi ve değer tipi olmak üzere ikiye ayrılır.
Değişkenler
Değişkenler, içinde farklı türlerde veri saklayabileceğimiz bellek alanlarının programlamadaki karşılığıdır. Tüm programlama dillerinde değişkenler kullanılmadan önce tanımlanmalıdır. Verilerin bellekte tutulması aşağıdaki bölgelerden birinde olmaktadır.
1. Stack Bölgesi
Stack bölgesi RAM'i temsil eder. Genel olarak önceden tanımlanmış veri tiplerinin çoğu burada tutulur. Stack bölgesine Stack Pointer ile doğrudan erişilebilir. Stack pointer o anda bellekte çalışan bölgenin adresini tutan yapıdır. Stack pointer, bellekteki alan tahsisatına göre bir azaltılır ya da bir arttırılır. Bu yüzden stack bölgesinde tutulacak olan verinin kapladığı alanın önceden bilinmesi zorunludur.
2. Heap Bölgesi
Bu bölge de RAM'de bulunan hafıza alanıdır. C#'daki bütün nesneler burada oluşturulur. Bu bölgede tahsisatı yapılacak nesnenin önceden tanımlanmış olması gerekmemektedir. Heap bölgesinde tanımlanan veriler dinamik olarak oluşturulduğu için programlarda çok büyük esneklik avantajı sağlar. Ancak bu avantajının yanı sıra Stack bölgesine göre işlem hızı daha yavaştır.
3. Static Bölge
Bellekteki herhangi bir sabit bölgeyi temsil eder. Bu alanda saklanan veriler program çalışma süresince tutulur.
4. Sabit Bölge
Sabit değerler genelde programın içerisinde gömülü şekildedirler. Bu tip değerlerin değişmesi mümkün değildir. Sadece okuma amaçlı oldukları için bazı durumlarda ROM'da saklanabilmektedir.
5. RAM Olmayan Bölge
Bellek bölgesi olmayan diğer tüm bölgeleri temsil eder. Sabit disk, CD, DVD, Flash Disk vs.
Değişken Tanımlama
C#'da tüm nesneler aşağıdaki şekilde tanımlanırlar.
1
<veri türü> <isim>;
Örneğin 32 Bitlik işaretsiz tamsayı türü olan "uint" tipinde, "x" adında bir değişken tanımlamak istersek:
1
uint x;
yazabiliriz. Ancak tanımlanan değişkende herhangi bir değer tutulmamaktadır. Bu yüzden C# bize bu şekilde tanımladığımız bir değişkeni kullanmamıza izin vermez. Değişkenlere değer atama iki şekilde yapılır.
1. Değişken tanımlanırken değerinin de bildirildiği durum
 
2. Değişken tanımlamasının yapılıp değerinin sonradan bildirildiği durum
1
2
uint x;
x=50;
Eğer bir satırda birden fazla değişken tanımlamak istersek aralarına virgül koyarak işlemi gerçekleştirebiliriz.
float x, y, z;
Değişkenlerin Adlandırılması
1. Değişken isimlerinde büyük küçük harf duyarlılığı vardır. "tbt" ile "TBT" C# için farklıdır.
1
2
3
4
5
int tbt, TBT;
tbt=10;
TBT=9;
Console.WriteLine(tbt);
Console.WriteLine(TBT);
yazıp programımızı derlediğimizde ekrana iki farklı değer yazdığını görebiliriz.
2. Değişken isimleri numaralar ile başlayamaz ve içerisinde boşluk bulunduramaz. Değişken ismi harf ile başlamalıdır ancak ondan sonra gelen karakter numara olabilir. Örneğin
int tbt1;
bool x5;
şeklindeki tanımlamalar doğrudur.
Değişkenlerin Faaliyet Alanı
C#'da programlar açılan kapanan parantezler içerisine yazılır. Bu açılan kapanan parantezlere blok adı verilir. Bir değişkene, sadece tanımlandığı blok içerisinden erişilebilir. Örnek üstünde açıklamak gerekirse :
1
2
3
4
5
6
7
8
9
{ // Birinci Blok
  int a=5;
  { //İkinci Blok
  int b=3;
  }
  { // Üçüncü Blok
  int b=3;
  }
}
Birinci blok içerisinde tanımlanan a değişkenine hem ikinci bloktan hem de üçüncü bloktan erişebiliriz. Aynı şekilde ikinci ve üçüncü blokların içerisinde a adında bir değişken tanımlamak hataya sebep olacaktır. Ancak burada bir farklılık var. İkinci blok ve üçüncü blok içerisinde yer alan b adlı değişkenler isimlerinin aynı olmasına karşın hata vermezler. Çünkü ikinci ve üçüncü bloklar birbirlerini kapsamadıkları için ikinci bloktaki ve üçüncü bloktaki b değişkenleri hafızanın farklı bölgelerinde saklanırlar. Birinci bloktan b değişkenine erişmek de mümkün değildir.
Sabit İfadeler
Bir program boyunca değerinin değişmeyeceğini düşündüğümüz verileri tanımlarken "const" anahtar sözcüğü kullanarak tanımlarız. "const" olarak tanımlanan değişkenlerin en büyük avantajı programın herhangi bir yerinde değerini değiştirmeye kalktığımızda hata vermesidir. Bu sayede değişkenimizin değerinin hep sabit olduğundan emin oluruz.
1
const double e = 2.71828;
şeklinde tanımlayabiliriz. Aynı şekilde sabitlere ilk değer verilirken yine sabitler kullanılmalıdır.
1
2
3
int a = 3;
int b = 5;
const int c = a+b;
şeklindeki bir tanımlama da geçerlidir. Ancak sabitlerden herhangi birinin değeri değiştirilirse program hata verecektir. Örneğin:
int a = 3;
a = a + 1;
int b = 5;
const int c = a + b;
şeklindeki bir ifade hatalıdır. Çünkü a değişkeni sabitliğini yitirmiştir. Sabit ifadeler ile ilgili uymamız gereken üç kural vardır.
1. Sabitler tanımlandıklarında değerleri atanmalıdır. İlk değer verilmeyen değişlenler const olamazlar.
2. Sabit ifadelere ancak sabit ifadeler ile ilk değer atanabilir.
3. Sabit ifadeler tasarım olarak zaten statik oldukları için ayrıca statik olarak belirtmek hataya yol açacaktır.
Değer Tipleri
Değer tiplerinde bir nesnenin değeri her zaman direkt saklanır. Aşağıdaki gibi bir atama yapıldığında x ve y değişkenleri birbirinden bağımsız olarak 5 değerini tutarlar. x değişkenindeki bir değişim asla y değişkenini etkilemez.
1
2
3
int x = 5;
int y;
y= x;
Değer tipi değişkenlerine ilk değer verilmesi iki şekilde yapılabilir.
1. İlk değer programcı tarafından atanarak:
1
int tbt = 0;
2. İlk değer nesnenin varsayılan yapıcı işlevi çağırılarak yapılır.
1
int tbt = new int();
Her bir tip için varsayılan bir ilk değer vardır. Bu ilk değerler aşağıdaki tabloda verilmiştir.
Veri Tipi Varsayılan İlk Değer
bool false
byte 0
char '\0'
decimal 0.0m
double 0.0d
enum enum sabitindeki ilk değer
float 0.0f
int 0
long 0L
sbyte 0
short 0
struct Yapı nesnesindeki bütün değerler varsayılan değere, referans tipleri ise null değere atanır
uint 0
ulong 0
ushort 0
byte Veri Türü
byte bilgisayarda 8 bitlik bir bilgiyi saklamak için kullanılır. İşaretsiz bir veri türüdür ve sadece pozitif sayıları tutabilir. Alacağı değer 0 ile 255 aralığındadır.
sbyte Veri Türü
sbyte veri türü byte veri türü gibi 8 bitlik bir veri türüdür. Ancak işaretli bir veri türü olduğu için alabileceği değer -128 ile 127 aralığındadır.
short Veri Türü
short veri türü 16 bitlik işaretli tamsayı veri türüdür. Alabileceği değer -32,768 ile 32,767 aralığındadır.
ushort Veri Türü
ushort veri türü 16 bitlik işaretsiz tamsayı veri türüdür. Alabileceği değer 0 ile 65,535 aralığındadır.
int Veri Türü
int veri türü 32 bitlik işaretli tamsayı veri türüdür. Alabileceği değer -2,147,483,648 ile 2,147,483,647 aralığındadır.
uint Veri Türü
uint veri türü 32 bitlik işaretsiz tamsayı veri türüdür. Alabileceği değer 0 ile 4,294,967,295 aralığındadır.
long Veri Türü
long veri türü 64 bitlik işaretli tamsayı veri türüdür. Alabileceği değer -9,223,372,036,854,775,808 ile 9,223,372,036,854,775,807 aralığındadır.
ulong Veri Türü
ulong veri türü 64 bitlik işaretsiz tamsayı veri türüdür. Alacağı değer 0 ile 18,446,744,073,709,551,615 aralığındadır.
float Veri Türü
float veri türü 32 bitlik gerçek sayı veri türüdür. "f" ya da "F" son ekini alarak tanımlanırlar. Alacağı değer ± 1.5 * 10-45 ile ± 3.4 * 1038 aralığındadır.
1
2
float x = 1.8f;
float x = 1.8F;
tanımlamaları arasında hiçbir fark yoktur. "f" ya da "F" son eki konulmadığı durumda değer otomatik olarak double veri türü kabul edilir ve hata alınır.
double Veri Türü
double veri türü 64 bitlik gerçek sayı veri türüdür. "d" ya da "D son ekini alarak da tanımlanabilir. Eğer son ek yazılmazsa sistem otomatik olarak double veri türünde kabul edecektir. Alacağı değer ± 5 * 10 -324 ile ± 1.7 * 10308 aralığındadır.
1
2
3
double x = 1.8;
double x = 1.8d;
double x = 1.8D;
tanımlamaları arasında hiçbir fark yoktur.
decimal Veri Türü
decimal veri türü 128 bitlik gerçek sayı veri türüdür. "m" ya da "M" son ekini alarak tanımlanırlar. Alacağı değer 10-28 ile 7.9 * 1028 aralığındadır.
1
2
decimal x = 1.8m;
decimal x = 1.8M;
tanımlamaları arasında hiçbir fark yoktur. "m" ya da "M" son eki konulmadığı durumda değer otomatik olarak double veri türü kabul edilir ve hata alınır.
bool Veri Türü
"true" ya da "false" değerleri saklamak için kullanılan veri türüdür. True ya da False değeri atanabileceği gibi karşılaştırma operatörlerinin oluşturduğu ifadeler de atanabilir.
1
2
3
bool x = true;
bool y = false;
bool z = 3 < 5;
char Veri Türü
char veri türü 16 bit uzunluğunda Unicode standartlarındaki karakterleri temsil etmek için kullanılır.
1
2
3
char x = 'A';
char y = '\x0058';
char z = (char)45;
Referans Tipleri
C# dilinde önceden tanımlanmış iki adet referans tipi veri türü bulunur. Bunlar string ve object veri türleridir. Object veri türü C# dilindeki bütün türlerin türediği veri tipidir.
string Veri Türü
string veri türü Unicode karakterlerden oluşan bir dizi gibi düşünülebilinir.
1
2
string x = "tahribat.com";
string y = "HolyOne";
Özel anlamlar ifade eden karakterler kullanmak istiyorsak bunları "\" karakteri ile belitmemiz gerekir ya da string ifadesinin önüne "@" işareti konulur.
1
2
string path = "c:\\windows\\";
string path = @"c:\windows\";
şeklindeki tanımlamaların ikisi de doğrudur.
object Veri Türü
object veri türü C#'da bulunan tüm veri türlerinin türediği veri türüdür. Bu yüzden tüm değerler ve nesneler object türünden bir değişkene atanabilir. Nesnelerin object türüne dönüştürülmesine boxing denilmektedir. Tür dönüşümü konusunda daha detaylı inceleyeceğiz.

jQuery Event Methods


Event methods trigger or attach a function to an event handler for the selected elements.
The following table lists all the jQuery methods used to handle events.

Method / PropertyDescription
bind()Deprecated in version 3.0. Use the on() method instead. Attaches event handlers to elements
blur()Attaches/Triggers the blur event
change()Attaches/Triggers the change event
click()Attaches/Triggers the click event
dblclick()Attaches/Triggers the double click event
delegate()Deprecated in version 3.0. Use the on() method instead. Attaches a handler to current, or future, specified child elements of the matching elements
die()Removed in version 1.9. Removes all event handlers added with the live() method
error()Removed in version 3.0. Attaches/Triggers the error event
event.currentTargetThe current DOM element within the event bubbling phase
event.dataContains the optional data passed to an event method when the current executing handler is bound
event.delegateTargetReturns the element where the currently-called jQuery event handler was attached
event.isDefaultPrevented()Returns whether event.preventDefault() was called for the event object
event.isImmediatePropagationStopped()Returns whether event.stopImmediatePropagation() was called for the event object
event.isPropagationStopped()Returns whether event.stopPropagation() was called for the event object
event.namespaceReturns the namespace specified when the event was triggered

Twitter Delicious Facebook Digg Stumbleupon Favorites More

 
Powered by Blogger | Printable Coupons