这篇文章并不是真的关于下面的代码中的错误,我可以想象它有几十种解决方法,它更主要与简单性,优雅性和性能有关!如何传递一个常量字符串参考到函数
我不得不做一个非常简单的文本解析,这样的事情:
string ParseWord(ref string Line, ref int Pos) {
// Inspect Line from Pos, increment Pos and return next Word
}
void ParseText(string[] Lines) {
foreach (string Line in Lines) {
int Pos = 0;
string Word;
while ((Word = ParseWord(ref Line, ref Pos)) != null) {
// Do something with Word
}
}
}
遗憾的是它不工作的方式,因为“的foreach”变量“线”是通过引用传递这是不允许的。如你现在可能已经注意到的,我通常是一个C++程序员。 我的想法是,传递字符串作为参考会更快,因为它不必每次都被复制。
第一个问题:这个假设在c#中仍然有效吗?
第二个问题:我如何传递到“行”的引用,并仍然使用“的foreach” - 没有“常量”,在C#
第三个问题:我在想一些不适当的C++的方式和喜欢的事那我们会在c#中完成不同的工作吗?
我明白了。字符串的行为类似于值类型,但它们确实是参考的。应该有这个想法。它的基本原理与我一直将自己构建到自己的C++字符串类中的机制相同:-) –