【发布时间】:2017-08-24 11:36:58
【问题描述】:
我目前正在重构一个大型应用程序。
有大量的 Windows 窗体,它们都继承自一个基本窗体。我无法调试使用 Application.Run() 运行第一个表单后发生的任何事情。
由于代码乱七八糟,我在调试UI的时候不容易顺势而为,也不知道什么时候看的表格。
表单太多了,我无法为每个表单手动创建一个方法,所以我想做的是在父类中创建一个每个人都调用的方法。例如,此方法可以将表单名称打印到控制台。这样我可以在源代码中创建一些文件夹结构,基于什么导致哪里。
任何建议我可以如何使用 Resharper 和/或 Visual Studio 做到这一点?
非常感谢任何输入!
【问题讨论】:
-
在基类中创建一个方法相当容易:
protected sealed void Callme() { /*... yada yada */ }但是应该在何时何地调用它? -
这就是问题所在。有太多子类,我无法将基本表单调用复制+粘贴到每个子类。我需要一个自动化函数或语法,它会强制所有表单在输入时报告其名称。
-
好吧,我被“输入时”阻止了——你认为“输入”是什么。创建?显示? ...当然你可以在 BaseClass 构造函数中添加一些反射报告,每个后代都会自动调用它......但我想你想要更多的东西在“Form.Show()”被调用的意义上......
-
或者完全不同:也许外部代码分析工具会有所帮助。有一些工具可以检测和可视化代码依赖关系......只是一个想法。
-
当进入是一个值得考虑的好事件,谢谢!我已经在使用代码分析工具来可视化依赖关系。现在我想绘制出在用户界面的哪个部分使用了哪些源代码。例如,当我进入设置时,它应该会弹出“您已进入设置表单”。问题是我的表格太多,无法为每个孩子手动创建。希望这是有道理的
标签: c# .net inheritance resharper