ByRef 和输出方法参数修饰符有什么区别



一切都在主题中,真的。

我看不出这两种方法之间的行为x有什么区别:

// first version
Method m(ByRef x As whatever)
{
    // play with x
}
// second version
Method m(Output x As whatever)
{
    // play with x
}

这两个修饰符的存在一定是有原因的,但是我对语言的"掌握"(uhm(不足以理解其中的区别。我已经尝试并阅读了文档,搜索了它等,但到目前为止无济于事。

那么,这两个参数修饰符之间有什么区别呢?

好吧,这些只是"美化者",它们在实际语言行为方面没有太多作用,仅用于提供文档。想法是记录为 ByRef 的参数同时提供输入和输出,例如,您可以传递要排序的数组,而输出参数仅提供输出,例如错误列表。输出修饰符是后来引入的,许多系统代码仍然在这两种用例中使用 ByRef。

如果参数实际上是通过引用传递的,则仅由方法调用者确定,关键字并不重要。您将调用方法作为..m(.parameter)按引用传递变量,..m(parameter)按值传递变量。

相关内容

  • 没有找到相关文章

最新更新