C#是否支持inout参数?

前端之家收集整理的这篇文章主要介绍了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

猜你在找的C#相关文章