如果我在VB.NET类的方法上设置可选参数,那么调用者或被调用方法提供的可选参数是什么?
在C ++中,它由被调用的方法提供。 在C#中,它由调用方法提供。
想知道它在VB.NET中是如何工作的。
答案 0 :(得分:3)
呼叫者。
另一个警告C#人可能不知道的是 C#版本的 可选参数受到VB的相同限制 版本(顺便说一下,自VS 2002以来一直在VB中)。也就是说, 可选参数值是编译器技巧,其中可选 参数值不会编译到调用的方法中,而是编译 进入来电者。
在此处阅读更多内容:Caveats Of C# 4-0 optional parameters
答案 1 :(得分:2)
来电者。如果没有大幅改变方法签名,那么“没有指定此参数”没有通用值,因此被调用者无法可靠地告知该参数未被提供。编译器从汇编元数据中挖掘出默认值并在调用站点使用它。