未处理StackOverflowException
|
我的代码中出现此错误
MedCareProviderLibrary.dll中发生了\'System.StackOverflowException \'类型的未处理异常
这是我的代码的片段,错误是从哪里来的。它在带有错误的零件上给出黄色箭头。
显示错误的部分以粗体显示。任何帮助将不胜感激谢谢
private string _TestNo;
private string _TestType;
private DateTime _TestDate;
private string _PatientNo;
private string _DoctorNo;
public Test()
{
_TestNo = \"\";
_TestType = \"\";
_TestDate = new DateTime();
_PatientNo = \"\";
_DoctorNo = \"\";
}
public Test(string aTestNo, string aTestType, DateTime aTestDate, string aPatientNo, string aDoctorNo)
{
_TestNo = aTestNo;
_TestType = aTestType;
_PatientNo = aPatientNo;
_DoctorNo = aDoctorNo;
}
public string TestNo
{
set { _TestNo = value; }
get { return (TestNo); }
}
public string TestType
{
set { _TestType = value; }
**get { return (TestType); }
}
public DateTime TestDate
{
set { _TestDate = value; }
get { return (TestDate); }
}
public string PatientNo
{
set { _PatientNo = value; }
get { return (PatientNo); }
}
public string DoctorNo
{
set { _DoctorNo= value; }
get { return (DoctorNo); }
}
没有找到相关结果
已邀请:
7 个回复
联海
而不是
,而是执行
,因此属性getter会一次又一次地访问自身,从而导致无限递归并最终导致调用堆栈溢出。 另外,返回值不一定需要用方括号(除非您要计算某些复杂的表达式,在这种情况下您不需要)。 更改您的吸气剂,改为返回下划线前缀的字段(对所有属性执行此操作):
如果您使用的是C#3.0,也可以像其他建议一样使它们成为自动属性。
弦砂牧扁
:
这没有终止的方法,并且会不断调用自己,直到堆栈被烧毁并且
被抛出为止。 它应该是:
如果在C#3.0及更高版本上,则可以使用“自动”属性,从而完全避免了该问题:
这当然适用于您拥有的所有其他属性
辟官陡板休
由于您没有使用任何其他逻辑来要求您自己实现属性,因此建议您使用自动属性:
习让休堂溯
募磷
应该:
蜂佬渺
或者,您可以使用自动属性:
钨蜡唤喉晤