c# değişken değiştirme

Katılım
21 Kas 2013
Mesajlar
45
Puanları
1
Yaş
31
int sayi5 = 1 ;

float sayi6 = sayi5; // int daha küçük bir değer olduğu için floata atama yapıyor

sayi5=sayi6 ; // float olan sayi6 ' yı int olan sayi5 e atamıyor çünkü float değer int den daha büyüktür


// benim asıl sormak istediğim sayi6 yı sayi5 e atamak isterken int dönüşümü yapmamam rağmen hata verdi neden acaba ?
sayi5 = int(sayi6);
 
Float değişkeni bir tam sayıda olabilir nihayetinde 1'e eşitlemişsiniz o bu atamayı 1.0 olarak kabul ediyor. Float' ı int gönderme yönteminiz de zorbalık yapmışsınız Onu gelen şeyin bir int olduğuna inandırmaya çalışmışsınız fakat gerçekte böyle olmadığı için hata kabul eder.


Atamayı şu şekilde düzenleyin :

INT_DEGISKENI = Convert.ToInt32(FLOAT_DEGISKENI);
 
Son düzenleme:
oldu ama Convert.ToInt32() ile int() arasındaki fark nedir ?
 
Tek başına int() tanımlaması doğru değildir ve nadir yerler dışında kullanılmaz. Convert.ToInt32() içine girebilecek tüm ifadeleri tam sayıya çevirir.
 
teşekkür ederim bir de şey sorucam


object sayi7 = 1;
Console.WriteLine(sayi7.GetType());


object tipi sonuçta ram da saklanırken veri tipi ile saklanmaz ama bu programda unboxing yapmamama rağmen neden ekrana int cıktısı veriyor ?
 
Obje içinde sadece "1" sayısı var ve siz tipini soruyosunuz oda size System.Int32 çıktısı atıyor eğer içindekini yazdırmaya çalışıyorsanız .ToString(); ile tekrar deneyin.
 
ben anlamadım çünkü object nesnesi ram da saklanırken verinin türüne göre saklanmaz
mesela int değişkeni ram da int diye saklanır ama object in tipi bilinmez bilinmeyen bir tipi ekrana nasıl int diye vermiş ben onu hala anlayamadım ama ..
 
Unboxing unboxing diye sorduğunuz şeyi biraz daha okumanızı öneririm.
Object kullanımında değerler ve tür birlikte saklanır ki tür burada anahtar kelimedir çünkü dönüşüm buna göre yapılacaktır. Eğer türünü örneğiniz de ki gibi belirtmezseniz, dönüştürme işleminde program çökmesin diye C# objelemede kullandığınız Syntax' a bakarak türe karar verir. Kararsızlık önlenmiş, program çalışmaya devam etmiş olur.

Günümüzdeki yazılım dillerinin güçlerinden bahsetmeye gerek var mı?
 
ben daha yeni olduğum için boxing i anlamada zorluk çekiyorum şuan en iyisi biraz daha raştirayım teşekkürler
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için onları kabul etmelisiniz. Daha fazla bilgi edin…