C#:在字符串属性设置器中调用方法问题

ale*_*exD 1 c# methods setter properties file

我有一个字符串属性,它定义了xml文件的文件名.当用户将此文件名输入到属性中时,我在设置'fileName = value'后立即调用parseXml()函数,以使用XML文件中的数据填充dataTable,以便在设计器中显示.出于某种原因,当我在属性设置器中调用此函数时,每次更改属性时,setter最终会每次调用两次,第二次是空字符串,这会导致错误.它为什么这样做?

public String FileName
{
    get { return fileName; }
    set 
    {
        fileName = value;
        parseXmlFile();
    }
}
Run Code Online (Sandbox Code Playgroud)

Nat*_*lor 9

我最初的猜测是parseXml()中的某些东西再次调用该setter.如果删除对parseXml()的调用会发生什么?您是否尝试过调试并逐步执行代码,以查看第二次调用setter的确切内容?

如果你打一个断点filename = value;并点击它,那么callstack窗口会显示什么?

  • 在第二次写入时,callstack看起来像什么?从哪里打电话叫? (2认同)