zoukankan      html  css  js  c++  java
  • 踩了一个炕:慎用默认参数

    以前一直都以为.Net编译器会吧默认参数编译成重载的模式以供主调DLL调用,直到最近想扩展一个方法还不想影响以前的调用,于是就添加了默认参数。谁知道把方法所在DLL编译发布以后发现程序直接抛出找不到Method的异常了,之后我把主调用的dll编译了一下之后发现又能用了,这是什么鬼?

    写一个Demo验证一下:

    image

    image

    看一下运行结果:

    image

    再来看一下IL是长什么样子的:

    image

    你妹的原来编译器是直接通过直接给主调DLL赋默认值来调用默认参数方法的,并不是用重载!!!

    所以如果你要扩展的方法有多个DLL在调用,并且你还不想提交那么多DLL的话,自己做个重载吧,慎用默认参数。

    上午自己忙着去打Dota,没看到自己竟然没有设默认参数就截图了事了,汗!傻逼了01B46668

    截图已更新,谢谢楼下各位提醒。

  • 相关阅读:
    HDU 1813 Escape from Tetris
    BZOJ 2276 Temperature
    BZOJ 4499 线性函数
    BZOJ 3131 淘金
    HDU 5738 Eureka
    POJ 2409 Let it Bead
    POJ 1286 Necklace of Beads
    POJ 1696 Space Ant
    Fox And Jumping
    Recover the String
  • 原文地址:https://www.cnblogs.com/12taotie21/p/4375682.html
Copyright © 2011-2022 走看看