如果我在 VB.NET 类中的方法上设置可选参数,可选参数是由调用者提供还是被调用方法提供?
在 C++ 中,它由被调用的方法提供。在 C# 中,它由调用方方法提供。
想知道它在 VB.NET 中是如何工作的。
如果我在 VB.NET 类中的方法上设置可选参数,可选参数是由调用者提供还是被调用方法提供?
在 C++ 中,它由被调用的方法提供。在 C# 中,它由调用方方法提供。
想知道它在 VB.NET 中是如何工作的。
呼叫者。
另一个 C# 人可能不知道的警告是,可选参数的 C# 版本受到与 VB 版本相同的限制(顺便说一下,自 VS 2002 以来一直在 VB 中)。也就是说,可选参数值是一个编译器技巧,其中可选参数值不会编译到被调用的方法中,而是编译到调用者中。
在此处阅读更多内容: C# 4-0 可选参数的注意事项
由来电者。如果不彻底更改方法签名,则“未指定此参数”没有通用值,因此被调用者无法可靠地判断未提供该参数。是编译器从程序集元数据中挖掘出默认值并在调用站点使用它。