gpt4 book ai didi

c# - 使事件处理方法静态化有什么陷阱吗?

转载 作者:行者123 更新时间:2023-11-30 22:30:08 26 4
gpt4 key购买 nike

我有以下代码(来自 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;
}

我想不出任何问题,但我想知道我的知识是否有差距。

谢谢!

最佳答案

没有理由认为该处理程序应该是静态的; ReSharper 建议将其设为静态的原因可能是因为您没有在其主体内使用任何实例变量,所以没有害处,但事件处理程序不应该是静态的,因为它们应该能够修改/使用类的内部字段提供处理程序的实现

关于c# - 使事件处理方法静态化有什么陷阱吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9839431/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com