Bilginler Forum
C# Derslerine Devam Uye_ol
| Bilginler Forum | En Bilgili Forum Sitesi |
Bilginler Forum
C# Derslerine Devam Uye_ol
| Bilginler Forum | En Bilgili Forum Sitesi |
Bilginler Forum
Would you like to react to this message? Create an account in a few clicks or log in to continue.

Bilginler Forum

Bilginler Forum | Yetkin Forum Güvencesiyle Sizlerle
 
AnasayfaAnasayfa  Latest imagesLatest images  Kayıt OlKayıt Ol  Giriş yap  

 

 C# Derslerine Devam

Aşağa gitmek 
YazarMesaj
Admin
Bilginler Forum'un Yeni Admini BéRK
Bilginler Forum'un Yeni Admini BéRK
Admin


Mesaj Sayısı : 215
Kayıt tarihi : 10/04/10
Yaş : 34
Nerden : Bilginler Forum'dan

C# Derslerine Devam Empty
MesajKonu: C# Derslerine Devam   C# Derslerine Devam EmptyPerş. Nis. 29, 2010 8:25 am

Sabit Ifadeleri:
Bir program boyunca degismeyecegini düsündügümüz verileri tabiki sabit olarak belirleriz.Peki bunu nasil yapicaz? Soyle;
tanimlama satirinda const anahtar sozcügnü kulaniriz.Bunun en büyük avantaji program icinde sikca kullandigimiz degerleri aniden degistirmek gerektiginde gorülür.Ayrica bir avantaji daha var bu olayin;const olarak tanimladigimiz bir degiskeni kodlamanin ilerike bolümlerinde yanlislikla degistirebiliriz.Bu durumda derleyici bize hemen hata verir ve bu da yanlis yaptigimizi farketmemizi saglar.
Ornek;

using System;
public class herneyse
{
public static void Main()
{
const double pi=3.14;
pi=3.1;
}
}
Bu program derlendiginde hata verir.Ayni sekilde sabitlere deger verilirken yine sabitler kullanilmalidir.Sabitlere ilk deger verilmezse yine derleyici bize hata verir.
using System;
public class hata
{
public static void Main()
{
int a=3,b;
b=a;
const int c=a+b;
}
}
Buda bize hata verir ama asagida yazgim oldukca gecerlidir;
using System;
public class hatasiz
{
public static void Main()
{
const int a=3;
const int b=a+6;
Console.WritelLine();
}
}
Bu isin 3 kurali vardir:
1.Sabitler tanimlandiklarinda degerleri atanmalidir.
2.Sabit ifadelere ancak sabit ifadelerle ilk deger atanabilir.
3.Sabit ifadeleri C# dilinde tasarim olarak zaten static yani sabit olduklariu icin
ayrica static olarak belirtmek hatalidir ve kullanilamaz.
Sayfa başına dön Aşağa gitmek
http://bilginler.hareketforum.com
Admin
Bilginler Forum'un Yeni Admini BéRK
Bilginler Forum'un Yeni Admini BéRK
Admin


Mesaj Sayısı : 215
Kayıt tarihi : 10/04/10
Yaş : 34
Nerden : Bilginler Forum'dan

C# Derslerine Devam Empty
MesajKonu: Geri: C# Derslerine Devam   C# Derslerine Devam EmptyPerş. Nis. 29, 2010 8:25 am

Tür Donüsümü:

Genellikle büyük capli projelerde tanimladigimiz degiskenleri derleyicinin farkli bir türden gibi algilamasini isteriz.Ornek int türünden bir degiskenin byte türünden bir degikenle toplanmasi gibi.Bu yüzden farkli türden degiskenlerin ayni ifade icinde islem gormeleri icin tür donüsümü kullanilir.
Tür donüsümü genel olarak ikiye ayrilir;Bilincli Tür Degisimi ve Bilincsiz Tür Donüsümü...

Bilincsiz Tür Donüsümü

Derleyici tarafindan bir degiskeni tanimladigimiz türün disinda gecici olarak baska bir türe cevirmeye denir.Asagida int türünden bir nesne float türünden nesneye atanmaktadir.

using System;
class TurDonusumu
{
static void Main()
{
int s=10;
float a;
a=s;
Console.WiteLine(a);
}
}
Bu islemi saglayan,derleyicinin gizlice yaptigi tür donüsümüdür.Bu degisiklik gecicidir.Eger gecici olmasaydi a=s; ifdesinden sonra s degiskeni float türünden olurdu,bu durumda ayni isimli degisken programuin arkli noktalarinda farkli türden davranacagi icin programin karmasikligi artacaktir.Bu yüzden; ozellikle belirtilmedikce bilincsiz yapilan ür donüsümlerinde bir nesnenin türü asla kalici olarak degistirilmez!
Bilinciz yapilan tür donüsümleri genel olark iki sekilde yapilabilir.Bunlar kücük türün büyük üre cevrilmesi ve büyük türün kücük türe cevrilmesi gibidir.Fakat büyük türler kücük türlere cevrilemezler.Eger bu mümkün olsaydi büyük türlerden kücük türlere gecilirken veri kayiplari olacakti.

Kücük Türün Büyük Türe Cevrilmesi:

Kücük türler büyük türlere donüsürülürken fazla olan bitler yani büyük türden dolayi eklenen bitler sifir ile beslenir.Sifirlarla beslenmek degeri degistirmeyecegi icin veri kaybi olmaz.

using System;
class buyukkucuk
{
static void Main()
{
byte a=20;
int b;
b=a;
Console.WiteLine(b);

float f=20;
double d;
d=f;
ConsoleWriteLine(d);

char c='a';
decimal m;
m=c;
ConsoleWriteLine(m);
}
}
Bir tane daha;

using System;
class toplama
{
int a=10;
byte b=20;
short s=30;
double d;

d=a+b+s;
ConsoleWriteLine(d);
}
}

Byte türünden nesneler toplandiginda int türden nesneler üretilir.Yani iki yada daha fazla byte türünden nesne ile aritmetik islem yapacaksak sonucunu mutlaka int yada daha büyük bir türden deiskene atamaliyiz.
Ancak bazi tüler arasinda tür donüsümü yapmak mümkün degildir;
-bool,decimal ve double türünden herhangi bir türe
-Her hangi bir türden char türüne
-float ve decimal türünden herhangi bir türe(float türünden double türüne haric)
Sayfa başına dön Aşağa gitmek
http://bilginler.hareketforum.com
 
C# Derslerine Devam
Sayfa başına dön 
1 sayfadaki 1 sayfası
 Similar topics
-
» Ab ile müzakereleri devam eden ülkeler ?
» Toplama CLEO Modları Modlara Devam (mixed)

Bu forumun müsaadesi var:Bu forumdaki mesajlara cevap veremezsiniz
Bilginler Forum :: Web Master Programlama ve Tasarım :: Programlama :: C | C++ | C#-
Buraya geçin: