Şimdi Ara

çözüldü : c# çalışma zamanında hata alıyorum nedenini bulamadım yardım eder misiniz ?

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
3 Misafir - 3 Masaüstü
5 sn
7
Cevap
0
Favori
1.447
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj

  • using System;
    class Memeli
    {
    protected double mboy;
    protected double magirlik;

    public Memeli(double boy, double agirlik)
    {
    this.mboy = boy;
    this.magirlik = agirlik;
    }
    public void ozellkgoster()
    {
    Console.WriteLine("Boy = " + mboy);
    Console.WriteLine("ağırlık =" +magirlik);
    }
    public double Boy
    {
    get { return mboy; }
    set { mboy = value; }
    }
    public double agirlik
    {
    get { return agirlik; }
    set { magirlik = value; }

    }
    }
    class Kedi : Memeli
    {
    public string Turu;

    public Kedi(string turu, int boy, int agirlik): base(boy,agirlik)
    {
    this.Turu = turu;
    }
    public void TurGoster()
    {
    Console.WriteLine(Turu + " kedisi");
    }
    }
    class Koyun : Memeli
    {
    public string Turu;
    public Koyun(string turu, double boy, double agirlik): base(boy,agirlik)
    {
    this.Turu = turu;
    }
    public void TurGoster()
    {
    Console.WriteLine(true + " Koynu");
    }
    }
    class Mainmetot
    {
    public static void Goster(Memeli memeli)
    {
    Console.WriteLine("Boy = " + memeli.Boy);

    Console.WriteLine("Agirilik = " + memeli.agirlik);
    }
    static void Main(string[] args)
    {
    Memeli memeli1 = new Memeli(10,35);
    Goster(memeli1);
    Kedi kedi1 = new Kedi("Van", 5, 10);
    Goster(kedi1);

    Koyun koyun1 = new Koyun("Ankara", 52, 70);
    Goster(koyun1);
    }
    }



    < Bu mesaj bu kişi tarafından değiştirildi deniz caliskan -- 6 Temmuz 2017; 8:31:37 >







  • Kedi sınıfındaki boy ve ağırlık int olmuş. Onları da double yapıp deneyebilirsiniz. Varsa hata mesajını da yazarsanız iyi olur.

    < Bu ileti mobil sürüm kullanılarak atıldı >
  • hyrgul H kullanıcısına yanıt
    double yaptım yine olmadı, aldığım hata ise şu : Process is terminated due to StackOverflowException
  • Memeli sınıfında agirlik özelliğinin get kısmında return magirlik olacak sanırım. Siz return agirlik yazmışsınız.



    public double agirlik

    {

    get { return magirlik; }

    set { magirlik = value; }



    }

    < Bu ileti mobil sürüm kullanılarak atıldı >
  • hyrgul H kullanıcısına yanıt
    teşekkürler, oldu :)
  • Stack overflow hatası alınca birbirini çağıran fonksiyonlar veya kör döngü içinde kendini çağıran bir şeyler aramak gerek.

    1. memelinin ağırlık değişkeninin değeri istenirse get metodunu çalıştır.
    2. get metoduna göre ağırlık değişkeninin değeri, ağırlık değişkeninin kendisi.
    3. o zaman ağırlık değişkenininin get metodunu çalıştır.

    2 ve 3 arasında sıkışıp kalıyor program. Yapılan iş henüz bitmediğinden birbirlerine linkli halde stack'te duruyorlar. Eğer fazla dolarsa da memory bitiyor, stack daha fazlasını taşıyamayıp overflow oluyor.



    < Bu mesaj bu kişi tarafından değiştirildi KaramazovX -- 6 Temmuz 2017; 9:5:2 >
  • çok sağ ol üstat, öğrendiğim iyi oldu :)
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.