我对 C#(来自 PHP)有点新,我有点震惊,通过循环遍历一个列表,我无法传递对该变量的引用,即以下代码无效:
foreach (ref string var in arr) {
var = "new value";
}
我进行了一些研究,发现了一个创建“可更新枚举器”的建议,但我无法弄清楚我应该如何做到这一点。我遵循了一个示例,并尝试为 IEnumerator.Current 方法和我的自定义枚举器 (PeopleEnum.Current) 添加 Current 设置器,但老实说,这是盲目的猜测并且不起作用。我将整个代码粘贴在 pastebin 中,因为在这里粘贴很长 -自定义枚举器尝试。在此代码中,尝试通过以下方式访问当前元素
badClass baddie = new badClass(ref tmp.Current);
导致预期的错误“属性或索引器可能不会作为输出或引用参数传递”
我最终的目标是这样的 - 遍历对象列表,为每个对象生成一个按钮,并为该按钮添加一个 onclick 事件,该事件将打开一个新表单,传递该对象的引用, 以便可以以该新形式编辑其内容。我做了所有这些,但是将对象作为参考而不是只读数据传递,这让我很生气。我将不胜感激任何答案,我可以在其中阅读有关可更新枚举数或想法的链接。