folder Tahribat.com Forumları
linefolder C#, Asp.Net, .Net Core
linefolder Stackoverflowexception Hatası Nedeni ?



Stackoverflowexception Hatası Nedeni ?

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Gizem
    sLeymN
    sLeymN's avatar
    Kayıt Tarihi: 31/Mart/2008
    Erkek
    derleyip çalıştırınca ilk set yönteminde stackoverflowexception hatası alıyorum :s this sözcüğü gereksiz kullanılmış olabilir sonradan ekledim :s hata neden kaynaklanıyor acaba :s 
     
     
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    
    namespace odev3
    {
        class Program
        {
            public int pay
            {
                set {
                    this.pay = value; 
                }
                get { 
                    return this.pay;
                }
            }
    
            public int payda
            {
                set
                {
                    this.payda = value;
                }
                get
                {
                    return this.payda;
                }
            }
    
            public Program(int pay1, int payda1)
            {
                pay = pay1;
                payda = payda1;
            }
    
    
            public static Program topla(Program sayi1, Program sayi2)  // paydalar eşit ise normal toplama yapar değil ise paydaları eşitlemek için ortak payda işlemi yapar
            {
                if (sayi1.payda == sayi2.payda)
                {
                    Program toplam = new Program((sayi2.pay + sayi1.pay), sayi1.payda);
                    return toplam;
                }
                else
                {
                    Program toplam = new Program((sayi1.pay * sayi2.payda) + (sayi2.pay * sayi1.payda), (sayi1.payda * sayi2.payda));
                    return toplam;
                }
                    
                
            }
            public static Program cikart(Program sayi1, Program sayi2)
            {
                if (sayi1.payda == sayi2.payda)
                {
                    Program kalan = new Program((sayi2.pay - sayi1.pay), sayi1.payda);
                    return kalan;
                }
                else
                {
                    Program kalan = new Program((sayi1.pay * sayi2.payda) - (sayi2.pay * sayi1.payda), (sayi1.payda * sayi2.payda));
                    return kalan;
                }
            }
    
            public static Program carp(Program sayi1, Program sayi2)
            {
                Program carpim = new Program((sayi1.pay * sayi2.pay), (sayi1.payda * sayi2.payda));
                return carpim;
            }
            public static Program bol(Program sayi1, Program sayi2)
            {
                Program bolum = new Program((sayi1.pay * sayi2.payda), (sayi1.payda * sayi2.pay));
                return bolum;
            }
    
            public static int karsilastir(Program sayi1, Program sayi2)
            {
                if ((sayi1.pay / sayi1.payda) == (sayi2.pay / sayi2.payda))
                {
                    return 0;
                }
                if ((sayi1.pay / sayi1.payda) > (sayi2.pay / sayi2.payda))
                {
                    return 1;
                }
                if ((sayi1.pay / sayi1.payda) < (sayi2.pay / sayi2.payda))
                {
                    return -1;
                }
                return 3;
            }
    
    
    
            static void Main(string[] args)
            {
                Console.Write("1. sayının pay'ını giriniz");
                int pay1 = Convert.ToInt32(Console.ReadLine());
                Console.Write("1.sayının payda'sını giriniz");
                int payda1 = Convert.ToInt32(Console.ReadLine());
                Console.Write("2. sayının pay'ını giriniz");
                int pay2 = Convert.ToInt32(Console.ReadLine());
                Console.Write("2.sayının payda'sını giriniz");
                int payda2 = Convert.ToInt32(Console.ReadLine());
    
                Program rasyonel1 = new Program(pay1, payda1);
                Program rasyonel2 = new Program(pay2, payda2);
                Program sonuc = topla (rasyonel1 , rasyonel2);
                Console.WriteLine("toplama işleminin sonucu = " + sonuc.pay + "/" + sonuc.payda);
                sonuc = cikart(rasyonel1, rasyonel2);
                Console.WriteLine("çıkarma işleminin sonucu = " + sonuc.pay + "/" + sonuc.payda);
                sonuc = carp(rasyonel1, rasyonel2);
                Console.WriteLine("çarpma işleminin sonucu = " + sonuc.pay + "/" + sonuc.payda);
                sonuc = bol(rasyonel1, rasyonel2);
                Console.WriteLine("bolme işleminin sonucu = " + sonuc.pay + "/" + sonuc.payda);
                Console.WriteLine("karşılastirma sonucu = " + karsilastir(rasyonel1 , rasyonel2));
                Console.ReadKey();
                
                
            }
        }
    }
    
     

    Cehennemin dibine kadar yolum var daha.. || Nasılsa her yalnız kendine sürgündür Asmera unutma.
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    SinusX
    SinusX's avatar
    Kayıt Tarihi: 14/Aralık/2010
    Erkek

    Program rasyonel1 = new Program(pay1, payda1);

    Şuraya bi debug point koyup denedin mi ? adım adım git muhtemelen bi yerde recursive var kendini tekrarlıyordur


    Si vis pacem para bellum.
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Gizem
    sLeymN
    sLeymN's avatar
    Kayıt Tarihi: 31/Mart/2008
    Erkek

    SinusX bunu yazdı:
    -----------------------------

    Program rasyonel1 = new Program(pay1, payda1);

    Şuraya bi debug point koyup denedin mi ? adım adım git muhtemelen bi yerde recursive var kendini tekrarlıyordur


    -----------------------------

    get set i kaldırıp çalıştırınca çalışıyor ama bu haldeyken çalışmıyor hocam. set e ilk girdiğinde hatayı veriyor hemen.


    Cehennemin dibine kadar yolum var daha.. || Nasılsa her yalnız kendine sürgündür Asmera unutma.
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    manglerman
    manglerman's avatar
    Kayıt Tarihi: 30/Aralık/2003
    Erkek

    property kullanımın hatalı bir kere hocam

     

    private string _firstName;
    
    public string FirstName;
    {
        get
        {
            return this._firstName;
        }
        set
        {
            this._firstName = value
        }
    }
     

     

     

    Bu şekilde kullanman lazım public değişkenle value alıp privateyle class içinde  kullanırsan problem olmaz.

     

    bu şekle dönüştür tekrar dene haber bekliyorum :)


    türk kızlarından sabun yapalım, rus kızları elini yıkasın.:)
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Gizem
    sLeymN
    sLeymN's avatar
    Kayıt Tarihi: 31/Mart/2008
    Erkek

    manglerman bunu yazdı:
    -----------------------------

    property kullanımın hatalı bir kere hocam

     

    private string _firstName;
    
    public string FirstName;
    {
        get
        {
            return this._firstName;
        }
        set
        {
            this._firstName = value
        }
    }
     

     

     

    Bu şekilde kullanman lazım public değişkenle value alıp privateyle class içinde  kullanırsan problem olmaz.

     

    bu şekle dönüştür tekrar dene haber bekliyorum :)


    -----------------------------

    tamam hocam 0ldu şimdi eyvallah :d get set kullanımını da öğrenmiş oldum bu sayede :D çok sağol (:


    Cehennemin dibine kadar yolum var daha.. || Nasılsa her yalnız kendine sürgündür Asmera unutma.
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    manglerman
    manglerman's avatar
    Kayıt Tarihi: 30/Aralık/2003
    Erkek

    reca ederiz:)


    türk kızlarından sabun yapalım, rus kızları elini yıkasın.:)
  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    SinusX
    SinusX's avatar
    Kayıt Tarihi: 14/Aralık/2010
    Erkek

    sLeymN bunu yazdı:
    -----------------------------

    manglerman bunu yazdı:
    -----------------------------

    property kullanımın hatalı bir kere hocam

     

    private string _firstName;
    
    public string FirstName;
    {
        get
        {
            return this._firstName;
        }
        set
        {
            this._firstName = value
        }
    }
     

     

     

    Bu şekilde kullanman lazım public değişkenle value alıp privateyle class içinde  kullanırsan problem olmaz.

     

    bu şekle dönüştür tekrar dene haber bekliyorum :)


    -----------------------------

    tamam hocam 0ldu şimdi eyvallah :d get set kullanımını da öğrenmiş oldum bu sayede :D çok sağol (:


    -----------------------------

    Aklında bulunsun eğer get set içerisinde bi koşul filan koymayacaksan direk

    public int Pay{ get; set; } yazabilirsin derledikten sonra senin yazdığına çevirir .net

    dahada kısası prop yazıp tab a bas kendisi çıkar snippettan :)


    Si vis pacem para bellum.
Toplam Hit: 1468 Toplam Mesaj: 7