gpt4 book ai didi

c# - 方法重写或拦截

转载 作者:行者123 更新时间:2023-12-02 21:38:07 26 4
gpt4 key购买 nike

在我的项目中,我引用了许多 DLL 程序集。这些 DLL 之一包含我想要更改的 bool 方法。我没有 DLL 的原始源代码,并且使用 Reflector 反编译项目似乎不切实际。我想要做的就是拦截或覆盖此方法或方法调用,以便我可以更改它的返回值以匹配我自己在所述 DLL 之外的方法。

有这样的方法吗?谢谢!

编辑:

这是一个例子:

public virtual bool isOwner()
{
return false;
}

本质上,我只是想将 getOwner 更改为返回 true;

最佳答案

如果该类是公共(public)的并且该方法被标记为虚拟,那么您可以简单地使用以下语法覆盖它:

public MyClass : TheClass
{
public override ReturnType MethodName(Arguments)
{
//class the base class implementation if needed
//base.MethodName(Arguments)

//do your own stuff and return whatever is needed
}
}

希望这有帮助

编辑:不过请注意,这不会替换 DLL 中的调用代码。仅当您自己实例化派生类并从代码中调用它时,它才有效。

关于c# - 方法重写或拦截,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20928050/

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