1

如果我在 VB.NET 类中的方法上设置可选参数,可选参数是由调用者提供还是被调用方法提供?

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

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

4

2 回答 2

3

呼叫者。

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

在此处阅读更多内容: C# 4-0 可选参数的注意事项

于 2013-08-15T18:20:34.493 回答
2

由来电者。如果不彻底更改方法签名,则“未指定此参数”没有通用值,因此被调用者无法可靠地判断未提供该参数。是编译器从程序集元数据中挖掘出默认值并在调用站点使用它。

于 2013-08-15T18:23:32.580 回答