我有以下代码(来自https://github.com/timabell/PageStructureBuilder),而且知识渊博的ReSharper建议我将DataFactoryCreatingPage()
方法设为静态。
这是安全的,还是在用作事件处理程序时会引入潜在的错误?
public void Initialize(InitializationEngine context)
{
DataFactory.Instance.CreatingPage += DataFactoryCreatingPage;
DataFactory.Instance.MovedPage += DataFactoryMovedPage;
}
void DataFactoryCreatingPage(object sender, PageEventArgs e)
{
var parentLink = e.Page.ParentLink;
var page = e.Page;
parentLink = GetNewParent(parentLink, page);
e.Page.ParentLink = parentLink;
}
我想不出任何问题,但我想知道我的知识是否有差距。
谢谢!
答案 0 :(得分:2)
没有理由说这个处理程序应该是静态的; ReSharper建议将其设置为静态的原因可能是因为你没有在其体内使用任何实例变量,所以没有坏处,但事件处理程序不应该是静态的,因为它们应该能够修改/使用类的内部字段提供处理程序的实现
答案 1 :(得分:1)
Resharper会这样做。
你不必这样做。