C# İnt İle Int32

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    siyahbereli
    siyahbereli's avatar
    Kayıt Tarihi: 03/Ocak/2006
    Erkek
    Yazilimci bunu yazdı
    siyahbereli bunu yazdı
    DuPi bunu yazdı
    siyahbereli bunu yazdı
    DuPi bunu yazdı

    Hocam Console.ReadLine() geriye string üreten bir fonksiyon.

    hocam şöylemi demek istiyorsun. Console.ReadLine() yazdığında yukarıdaki değişken ne olursa olsun string döner.? bu yüzden başına Int32 koyuyoruz ? niçin int32 de sadece int değil dersek sanrıım string bir değer int dönmüyor diyeceksiniz inşallah doğru anlamışımdır. ?

    int32, int16, int64 kullanabilirsin bu alacağın int değerinin boyutu ile alakalı. 

    şöyle tekrar söyleyeyim.

    sen int türünde bir değişken tanımladın.

    klavyeden değer vermek istedin. 

    fakat bir saniye klavyeden okunan tüm değerler string türündedir! 

    o zaman onu int türüne dönüştürmen gereklidir.

    işte o zaman Convert kullanman gerektiğini anlıyorsun.

    @AdReNaLiNe dediği olayda şu sen a harfine bassanda bunu int türüne çevirmeye çalışacak bazı dille bunu 65-97 olarak alır ama maalesef c# Convert hatası verecektir.

    o yüzden @AdReNaLiNe nin verdiği kodu kullanmak daha mantıklı.

     

     

    yani benim yukarıdaki basic koda istinaden 1000 tane değişkende tanımlamış olsam kullanıcı bir rakam gireceğinde o rakam string olarak bana dönecek, bende bana rakam dönsün istiyorsam direk int diyemiyorum mutlaka Int32,64 gibi bir değişkene konvert etmek zorundayım.

    Şimdi oturdu eyvallah. ben derleyicinin yorumlamasını (yukarıda int bir değişken dedim oraya bakar falan diye) kafamdan uydurmuş bulunuyorum vesselam.

    bundan sonra kod yazarken klavyeden gelecek veri her zaman string bir değer olarak düşüneceğim. ve her zaman konvert edeceğim. şeklinde düşüneceğim?

     

    Hocam ekrana yazılan veya ekrandan alınan her giriş derleyiciye göre string dir. Çünkü bunun bir kurtarımı yok. Kullanıcı klavye üzerinde bulunan her karakteri yazabilir. Bu sebeple sen int istiyorsan bunu senin ayarlaman gerekiyor.

    Hocam o zaman Variable tanımlarken yani

    int Rk1, Rk2, Rk3;  derken başına verdiğim "int" değişkeninin aslında çok bir önemi yok. görsel olarak hatırlama için gibi birşey mi? 

    aşağıda zaten ben yukarıda variable'a string de desemi double'da desem, datetime desem aşağıda bunu çevir kardeşim rakama ondalığa gibi zaten tanımlamak zorundayım?

    saçmaladıysam affola. ya da bunu şimdilik unutayım. konvert ile ilgili cevaplar için teşekkür ederim.


    Yapmadıklarınıza pişman olmaktansa, Yaptıklarınıza pişman olun...Yapın pişman olun, yada yapmayın yine pişman olun.
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Yazilimci
    Yazilimci's avatar
    Kayıt Tarihi: 01/Şubat/2014
    Erkek

    Yok hocam est. Öğrenen araştırana her zaman kapı açık ;)

    Şimdi şöyle birşey düşün. Yaptığın program girilen iki sayıyı birbiri ile toplasın. 

    Sen değişkeni başta string tanımlayıp ekrandan aldığını düşün. 

    string a, b;

    a için kullanıcı 5 dedi, b için 10 dedi. 

    Sen bu sayıları toplayacaksın. Eğer değişkenin tipi string ise a+b string olarak 510 dönecek. Matematiksel olarak toplayıp 15 sonucunu alman için değişkenin tipi sayısal (int, double, decimal vs) olması gerekiyor ;) . Bu yüzden başta ne tanımlarsan ona göre tepkimeye giriyor.


    Titanyumun gücü adına!!!
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    DuPi
    DuPi's avatar
    Kayıt Tarihi: 21/Ağustos/2005
    Erkek
    siyahbereli bunu yazdı
    ...
     

    Hocam o zaman Variable tanımlarken yani

    int Rk1, Rk2, Rk3;  derken başına verdiğim "int" değişkeninin aslında çok bir önemi yok. görsel olarak hatırlama için gibi birşey mi? 

    aşağıda zaten ben yukarıda variable'a string de desemi double'da desem, datetime desem aşağıda bunu çevir kardeşim rakama ondalığa gibi zaten tanımlamak zorundayım?

    saçmaladıysam affola. ya da bunu şimdilik unutayım. konvert ile ilgili cevaplar için teşekkür ederim.

    Hocam olur mu boşuna "tip tanımlamanın anlamı yok",

    okuyacağın veri için bellekte ne kadar yer ayıracağını program bilemez.

    kafanda oturmayan şey klavyeden okunan değerin her zaman neden string olduğu,

    diğer türlü değişkenlerin türünü belirtmek zorundasın.

    bir örnek yapalım.

    mesela T.C'yi okuyacaksın.

    long tc = Convert.ToInt32(Console.ReadLine());

    olarak okursan program derlenir fakat  tc yi okurken ve sana hafıza taşması hatası verir.

    çünkü int32 türünün hafızadaki ayrılan alanı ve int64 türünün hafızada ayrılan alanı çok farklıdır.

    o yüzden değişkenin türünü bildirmek zorundasın.

    aynı örnekte 

    long tc = Convert.ToInt64(Console.ReadLine());

     yaparsan çalışır.

     

     

     

    DuPi tarafından 01/Ara/17 16:48 tarihinde düzenlenmiştir

    Ne zaman birşey öğrenmek istesem, Birden Vaktim Kalmıyor ?
Toplam Hit: 2177 Toplam Mesaj: 14
int ve int32