Member 12973378 Ответов: 1

Необработанное исключение типа "system.stackoverflowexception" произошло в omobranch.dll


using OMOBranch.DAL;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Web;


namespace OMOBranch.Models
{
    public class Institution
    {
        [Key]
        [Required]
        [Display(Name = "Institution Id")]
        public int IntId { get; set; }
        [Required]
        [Display(Name = "Branch Name", Description = "እባክዎን የቅርጫፍ ስም ያስገቡ")]
        public int BId { get; set; }


        [Required]
        [Display(Name = "Employee Name")]
        public int EmpId { get; set; }
        
        [Required(AllowEmptyStrings = false, ErrorMessage = "ጾታ ባዶ መሆን አይችልም!!!")]
        [Display(Name = "ጾታ ")]
        public ListCreator.SexA SexA { get; set; }
        [Required]
        [Display(Name = "Description")]
        public ListCreator.Description Description{ get; set; }
        [Required]
        [Display(Name = "Institution Type")]
        public ListCreator.InstitutionType InstitutionType{ get; set; }
        [Required]
        [Display(Name = "Weekly Balance")]
        public decimal WeeklyBalance { get; set; }
        [Required]
        [Display(Name = "Previous Balance")]

        public decimal PreviousBalance
        {
            get { return (Cummulative); } 

        }
            
        
     
        [Required]
        [Display(Name = "Cummulative")]
        public decimal Cummulative
        {
            get { return decimal.Add(WeeklyBalance, PreviousBalance); }
        }

        [Required]
        [Display(Name = "ቀን")]
        public DateTime Date { get; set; }
        public virtual Branch branch { get; set; }
        public virtual Employee employee { get; set; }
        

        

        public ApplicationDbContext db = new ApplicationDbContext();
 

    }
}


Что я уже пробовал:

я начинающий программист на MVC5 я еще не пробовал

1 Ответов

Рейтинг:
1

F-ES Sitecore

Вы получаете переполнение стека, когда что-то попадает в бесконечный цикл вызова функции, например

public void MethodA()
{
    MethodA();
}


В приведенном выше методе он вызывает сам себя, и каждый раз, когда это происходит, он резервирует место в стеке, но стек конечен, поэтому в конечном итоге он вызывает себя так много раз, что стек исчерпывает пространство.

В вашем коде Cummulative вызывает PreviousBalance, который вызывает Cummulative, поэтому, если вы попытаетесь получить доступ к PreviousBalance, вы окажетесь в бесконечном цикле вызовов.