Şimdi Ara

C# da Değişken Türleri Arasında İşlemler (YARDIM)

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
5
Cevap
0
Favori
529
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  •  C# da Değişken Türleri Arasında İşlemler (YARDIM)

    Resmi göremeyenler için link

    Neden Böyle oluyor..
    Ve
    {
    byte a = 5;
    byte b = 6;
    byte sonuc = a + b;
    Console.WriteLine(sonuc);
    Console.ReadLine();
    }
    denildiğinde neden sonuc değişkeni byte tanımlanamıyor.. Byte 0 ile 255 arasında değer alıyor bnm işlemimin sonucu bu aralıkta ancak
    aldığım hata da bu:
    Error 1 Cannot implicitly convert type 'int' to 'byte'. An explicit conversion exists (are you missing a cast?)

    Delphi veya Pascal da bu tür sıkıntılar çıkmazken C# da neden çıkıyor







  • c# da byte türünden işlemler otomatik olarak int türüne dönüştürülür overflow'un olmaması için
  • sayı1 ve sayı2 yi toplarken double'a cast edersen düzelir sanırım.

    edit: denedim düzeldi

    sonuc = (double)sayi1 + (double)sayi2;



    < Bu mesaj bu kişi tarafından değiştirildi kirmik -- 26 Mart 2013; 22:34:02 >
  • Evet Double çevirip atınca sorun düzeliyor.
    Yalnız bn geçmişte C# da daha çok windows form uygulamalarıyla ilgilendim, daha sonra Delphi yi biraz kurcaladım. Şimdi Aslında bnm temelimde problemler olduğunu fark ettim. Geçmişte form nesneleri ile ilgilenmekten değişkenler konusunu yüzeysel geçmiş olmamdan kaynaklansa gerek. Değişkenler konusuna yüzeysel bakınca bi problem olmuyor ancak bn her değişkeni tanımlama ve tür dönüşümlerinin farkında olarak yapmak istiyorum(sizlerde bilirsiniz neredeyse her programda integer ve string dışında değişken kullanana pek rastlanmaz. Okullarda, kitaplarda,makalelerde Değişkenlerin derinliğine inilmiyor. Yapılan basit programlarda zaten gerek yok ancak daha kompleks programlarda her değişkenin ve her satırın bilinerek(planlanarak) tanımlanması gerekir. Çünkü amaç sadece program yapmak değil, en az kaynak tüketebilen programlar yapmaktırda.), Bir çok makale ve kitap inceledim.. Sadece değişken tanımlamak ve tür dönüşümlerinden bahsediliyor ancak bu sistemin nasıl işlediğini anlatan bi yazıya ulaşamadım...
    Sizlerin Bu konuda fikirleri veya kaynakları var ise paylaşabilir misiniz?




  • Sayın Bersgurs teşekkürler yönledirmeniz sonucu bikaç yazıya daha ulaşabildim sonuc olarak,

    Evet sbyte,short,byte,ushort gibi değişken türlerindeki veriler üzerinden işlem yapılmak istenildiğinde sonucun en az integer tipinde bir değişkende tutulması gerekiyor. Ancak Bu iş biraz saçma owerflow int+int sonucundaki işlemlerde de olabilir ancak C# buna önlem almazken küçük tiplerde önlem alıyor yani bu çok gereksiz bi koruma
    bnm sonucum byte da yer kaplayabilecek bir değerken neden boşuna integer tipinde alan ayırmam gerekiyor ki. Bir kaç değişkenden oluşan bi program için bu durum önemsiz ancak daha üst seviye programlarda belleği boşuna daha fazla yorma gibi bi problem çıkmaz mı?
    (Haa belki şunu diyeceksiniz byte, short gibi değişkenlerin bolca kullanıldığı üst düzey bir program zaten olamaz. Aslında belki aradığım cevap bu olabilir.)
    (tabiki bunun böyle olmasını isteyenlerin makul sebebleri vardır ancak bn de detayını merak ettiğimden biraz kıllık yapıyorum :) )




  • Yapay Zeka’dan İlgili Konular
    Daha Fazla Göster
    
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.