當我運行控制臺應用程式時,出現此堆疊溢位錯誤。由于這個錯誤似乎在我的代碼的 Assignlogic 部分,我已經寫下了那部分代碼和顯示的錯誤。我的問題是如何在不改變代碼功能的情況下處理這個例外?
//Assign
public class Assignlogic
{
private List<Assign> Assigns { get; set; } = new List<Assign>();//Here exception unhandled was thrown
//System.StackOverflowException: 'Exception of type 'System.StackOverflowException' was thrown.'
readonly Assignlogic logicC = new Assignlogic();
public void AddEmployeetoProject(Assign assign, Employeelogic logicA, Projectlogic logicB)
{
List<Employee> Employes = logicA.Employees;
List<Project> Projcts = logicB.Projects;
List<Assign> Assignss = logicC.Assigns;
var id = assign.EmpId;
var pid = assign.PID;
var emp = Employes.Find(a => a.EmpId == id);
var prjct = Projcts.Find(c => c.PID == pid);
if (emp != null || prjct != null)
{
Assignss.Add(assign);
}
}
//view all assigned projects
public List<Assign> GetAllAssignedProjects()
{
return Assigns;
}
//remove an employee from a project
public void RemoveEmployee(string id)
{
var emp = Assigns.Find(a => a.EmpId == id);
if (emp != null)
{
Assigns.Remove(emp);
}
}
public bool SearchProjectbyMappedId(string id)
{
var employee = Assigns.Find(c => c.EmpId == id);
if (employee != null)
{
return true;
}
else
{
return false;
}
}
}
uj5u.com熱心網友回復:
創建 的實體時會發生什么Assignlogic?這:
readonly Assignlogic logicC = new Assignlogic();
因此,創建 的實體Assignlogic會創建 的實體Assignlogic,從而Assignlogic創建 的實體,從而創建 的實體Assignlogic,等等。
我不知道您的意圖是什么,但這顯然不是這樣做的方法。物件不應該無限遞回地創建自己。
uj5u.com熱心網友回復:
你在你的班級 AssignLogic 中有這個成員
readonly Assignlogic logicC = new Assignlogic();
所以當你創建一個AssignLogic時,它必須去創建一個AssignLogic來放在那里。創建該AssignLogic 需要另一個AssignLogic,.......
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/437711.html
