【发布时间】:2012-05-03 19:20:24
【问题描述】:
我对值类型按引用传递的工作不多,但很久以前我通过引用传递了一个结构,今天我在 .net 框架“CheckReaderCount”中遇到了一个函数,它通过“ref”获取 2 个 int 我是想知道这样做到底需要什么????它会改变函数内部int参数的值,为什么不将整数对象作为参数????只是想了解在这种情况下 ref 的使用。
【问题讨论】:
我对值类型按引用传递的工作不多,但很久以前我通过引用传递了一个结构,今天我在 .net 框架“CheckReaderCount”中遇到了一个函数,它通过“ref”获取 2 个 int 我是想知道这样做到底需要什么????它会改变函数内部int参数的值,为什么不将整数对象作为参数????只是想了解在这种情况下 ref 的使用。
【问题讨论】:
很简单 - 它正在读取和更改两个参数的值; whileIterations 递增并在按位测试中进行比较,readerCount 与特定属性值比较(相等是错误条件),并且(假设它没有错误),分配该属性值。
读取和更改两个值的唯一非ref 方法(假设我们不将它们作为字段提升到单独的对象上)是将它们作为参数传入并返回调用者的某种元组然后分解以更新局部变量(等)。一个简单的ref/ref 更简单。
【讨论】: