如下图是HelloWorld项目中的一个方法 GetB
这时候在另一个项目里面引用该HelloWorld这个DLL文件,如下图
现在运行项目 ConsoleApp1 结果如下图
这是没有问题的。
但是如果我修改了HelloWorld的这个GetB方法的默认值,如下图
然后再生产DLL文件放到ConsoleApp1下面,执行的结果如下:
发现默认值没有变更!!!其实出现这个问题的原因就是如果被引用的DLL的默认值变更了,那么去引用的项目也要重新编译才行。否则这个默认值就不会变化。
所以:如果我们的dll是公共的库文件,则最好不要使用默认参数,使用重载方法来实现不同参数的效果;因为使用默认参数的方法,如果只重新编译了这个公共dll(库文件),而没有重新编译引用这个公共库文件的程序,则会调用出错。
当然如果要灵活使用的话,可以根据业务场景使用0或者null这种特殊值来作为哨兵值:
这样变相的来变更默认值。