c# - 如何在覆盖方法中使用基方法的本地函数
问题描述
如果我有这个代码:
public virtual void Foo()
{
void Bar()
{
// do important stuff for Foo
}
}
// In a child class:
public override void Foo()
{
Bar(); // Doesn't work
base.Bar(); // Also doesn't work
}
无论如何都可以调用Bar
内部定义的本地函数Foo
而不Bar
使用普通方法?
解决方案
无论如何调用 Foo 内部 Bar 中定义的本地函数而不使 Bar 成为正常方法?
没有按设计的方式。这就是“本地”的意思。local只能通过声明位置中的代码通过 名称访问;这就是为什么他们被称为“本地人”。
有“任何”方式吗?当然,你可以用反射和反编译以及不安全的代码等来做各种恶作剧。请不要。这些是编译器的实现细节;不要试图对它们进行逆向工程,当然也不要依赖编译器团队做出的任何实现选择是永久性的!
推荐阅读
- android - 在 React Native 中提高(Android - 发布)性能
- reactjs - React 复选框组件:我应该在哪里保留状态更改?
- java - MockBean 在 Spring Boot 集成测试中不起作用
- javascript - 为什么我的多维数组的属性没有更新
- c# - 如果从任何生命周期方法运行,Xamarin Android TextToSpeech.Speak 什么也不说
- python - 错误 - ValueError:int() 以 10 为基数的无效文字:''
- git - 即使在新分支和本地副本中,未保存和未提交的更改仍然可见
- python - Python & Selenium:无法定位和点击 Facebook 的点赞和分享按钮
- c# - 业务流程变更触发插件 (D365/9.1)
- scala - 如何从变量创建映射键?