C#:一个字符串的属性设置里面的问题调用方法
-
16-09-2019 - |
题
我有限定了文件名的XML文件的字符串属性。当用户输入该文件名到属性,我有设定器设定“文件名=值”来填充从XML文件中的数据的DataTable,使其显示在设计后调用parseXml()函数立刻。出于某种原因,当我在属性setter调用此函数,二传手结束了两次每次我更改属性,每次获取调用,与第二次是一个空字符串,它会导致错误。为什么要这样做呢?
public String FileName
{
get { return fileName; }
set
{
fileName = value;
parseXmlFile();
}
}
解决方案
简短的回答:不应该。 更多有用的:也许你会第二次调用自己呢?设定于设定器,它被称为第二时间调试器,检查调用堆栈。
其他提示
我最初的猜测是,东西parseXml()再次调用一个二传手。如果删除调用parseXml()会发生什么?你尝试过调试和步进通过代码,因为它正在运行,看看究竟是什么调用二传手第二次?
如果您涂上filename = value;
断点,打它,什么是调用堆栈窗口告诉你?
作为一个完整的一边,你遇到的问题,把昂贵的IO操作属性setter的背后,是有点偏离失衡。
如果你想打开一个文件,并解析东西,等它会更好,有适当命名的一个单独的方法,它在最后的IO和设置该属性(文件名)时,该方法成功地完成了工作。
不隶属于 StackOverflow