VB.NET可选参数 - 绑定在调用者或被调用者?

时间:2013-08-15 18:18:10

标签: vb.net

如果我在VB.NET类的方法上设置可选参数,那么调用者或被调用方法提供的可选参数是什么?

在C ++中,它由被调用的方法提供。 在C#中,它由调用方法提供。

想知道它在VB.NET中是如何工作的。

2 个答案:

答案 0 :(得分:3)

呼叫者。

  

另一个警告C#人可能不知道的是 C#版本的   可选参数受到VB的相同限制   版本(顺便说一下,自VS 2002以来一直在VB中)。也就是说,   可选参数值是编译器技巧,其中可选   参数值不会编译到调用的方法中,而是编译   进入来电者。

在此处阅读更多内容:Caveats Of C# 4-0 optional parameters

答案 1 :(得分:2)

来电者。如果没有大幅改变方法签名,那么“没有指定此参数”没有通用值,因此被调用者无法可靠地告知该参数未被提供。编译器从汇编元数据中挖掘出默认值并在调用站点使用它。