You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#中扩展方法能否实现无需显式写this的成员方法式调用?

结论

可以实现该需求,C# 6.0及更高版本已经支持对应特性,操作方式如下:

操作步骤

  • 第一步:在测试类对应的代码文件头部,使用using static语法导入你的扩展方法所在的静态类,示例如下:
// 替换为你自己的命名空间
using static YourNamespace.TestableTowerCollection;
// 其他存放扩展方法的静态类也按同样方式导入
using static YourNamespace.MockExtensionMethods;
  • 第二步:导入完成后,即可在继承了UnitTestWithGameObjects的测试类中直接调用扩展方法,无需额外加this.前缀:
[SetUp]
public void SetUp()
{
    _properties = new Properties();
    // 无需加this.即可调用,和Kotlin隐式this效果一致
    _towerCollection = TestTowerCollection(
        _properties,
        cameraPosition: new Vector3(4, 0, -100000)
    );
}

注意事项

  • 如果多个导入的静态类存在同名扩展方法,会出现调用冲突,此时可以选择显式加this.调用,或者显式指定静态类名+方法名的方式调用
  • 建议团队内对齐该写法规范,避免出现方法来源不清晰的问题

内容的提问来源于stack exchange,提问作者User1291

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 12:15:03