传递参数

更新:2007 年 11 月

方法参数可以通过值,通过引用传递,也可以作为输出参数传递。通过值传递参数时,方法获取调用方数据的副本,但不能改变调用方的数据副本。通过引用传递参数时,方法获取指向调用方数据的指针。此数据与调用方共享。如果方法对引用参数做出更改,则这些更改是对调用方的数据进行的。使用引用参数时,方法可以使用数据的初始状态。输出参数与引用参数类似,不同之处在于,输出参数以独占方式用于向调用方返回数据,而引用参数可用于将数据传入方法,也可用于从方法中接收数据。

避免使用输出参数或引用参数。

使用定义输出参数或引用参数的成员需要开发人员理解指针、值类型和引用类型之间的细微差别以及输出参数和引用参数之间的初始化差异。

不要通过引用传递引用类型。

通过引用传递一个对象使方法能够用不同的实例替换该对象。在大多数情况下,方法应使用提供的对象,而不应将其替换。对于此规则,有一些少量的例外(例如,可用于交换引用的方法)。

部分版权所有 2005 Microsoft Corporation。保留所有权利。

部分版权所有 Addison-Wesley Corporation。保留所有权利。

有关设计指南的更多信息,请参见 Krzysztof Cwalina 和 Brad Abrams 编著、Addison-Wesley 于 2005 年出版的“Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries”(《框架设计指南:可重用 .NET 库的约定、术语和模式》)。

请参见

概念

参数设计

其他资源

成员设计准则

类库开发的设计准则