在 linq 中使用 ref 参数
我有一个带有 ref 参数的函数,并希望在 linq 查询中使用它,但编译器会抱怨。
该函数称为 BreakLine,它根据行长度将字符串分成行,ref 参数用于跟踪每次调用时它在字符串中的位置:
string BreakLine(string text, int lineLimit, ref offset);
查询是:
from pt in productText
let offset = 0
from ll in lineLimits
select new Line() { Text = BreakLine(pt, ll, ref offset) }
(Line 是一个简单的数据类
)错误是:
“无法将范围变量‘offset’作为 out 或 ref 参数传递”
有什么方法可以解决这个问题吗?
I have a function that takes a ref parameter and would like to use it in a linq query but the compiler complains.
The function is called BreakLine and breaks a string up into lines based on a line length, the ref parameter is used to keep track of where it is in the string on each call:
string BreakLine(string text, int lineLimit, ref offset);
The query is:
from pt in productText
let offset = 0
from ll in lineLimits
select new Line() { Text = BreakLine(pt, ll, ref offset) }
(Line is a simple data class)
The error is:
"Cannot pass the range variable 'offset' as an out or ref parameter"
Any way to workaround this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
参数
offset
没有指定类型。尝试将BreakLine
方法签名更改为:...但我想这只是您问题中的一个拼写错误。您遇到的真正问题是您收到编译器错误CS1939。引用文档:
The parameter
offset
has no type specified. Try to change theBreakLine
method signature into this:...but I guess that is just a typo in your question. The real problem you have is that you get compiler error CS1939. Quote from the documentation: