C#是否支持inout参数?

在C#中,我正在使用StreamReader来读取一行文件.我还将当前行的数字保留在int中,以获取可能的错误消息的报告.

阅读每一行都伴随着一些测试(例如,以#开头的行是注释,需要跳过),因此我打算将整个阅读过程放在一个函数中,这将继续阅读,直到遇到有用的行,然后返回该行.如果遇到EOF,它将返回null.

我认为当我将这个函数定义为字符串读取(StreamReader sr,out int lineNumber)时,我很聪明,但现在证明C#将无法在该函数内做类似lineNumber的操作.它假定变量尚未分配,可能是因为它无法知道是否已经在此函数调用之前分配了该变量.

所以,问题很简单:我如何指定这个变量是一个inout参数(我认为这是术语;我听说在其他编程语言的上下文中被提到)这是否可能在第一位?我绝对不会让lineNumber成为我班的成员,所以这不是一个选择.

解决方法

在这种情况下,您需要一个ref参数而不是out.使用out关键字,分配/实例化值的责任位于调用调用方法之内;与参考它在所谓的方法之外.

另见:When to use ref vs out

相关文章

原文地址:http://msdn.microsoft.com/en-us/magazine/cc163...
前言 随着近些年微服务的流行,有越来越多的开发者和团队所采...
最近因为比较忙,好久没有写博客了,这篇主要给大家分享一下...
在多核CPU在今天和不久的将来,计算机将拥有更多的内核,Mic...
c语言输入成绩怎么判断等级
字符型数据在内存中的存储形式是什么