-
我给一个公共库里的方法把可选参数的默认超时从 30 秒改成了 60 秒只重新编译发布了这个库的 dll、本以为所有调用方不用动就自动用上新默认值,结果线上一查那些没重新编译的调用方还在用 30 秒的旧默认,排查很久才搞懂 C# 里可选参数的默认值是编译时常量早被内联进了调用方的程序集里的深度复盘
我维护一个被很多服务依赖的公共库、里面有个方法带一个可选参数 Send(Request req, int timeoutSeconds = 30),调用方本来 Send(req) 用默认。后来发现 30 秒超时太短我把库里默认值改成 60 秒重新编译发布了库的新版 dll,以为所有调用 Send(req) 的地方不用改任何代码甚至不用重新编译只要换上新 dll 就自动用上 60 秒。结果上线后:重…- 0
- 0
编译时常量
幸运之星正在降临...
点击领取今天的签到奖励!
恭喜!您今天获得了{{mission.data.mission.credit}}积分
我的优惠劵
-
¥优惠劵使用时效:无法使用使用时效:
之前
使用时效:永久有效优惠劵ID:×
没有优惠劵可用!

