我在我的 c# 应用程序中创建了一种数据驱动的方式来创建 UI 元素,这些元素让我可以在运行时调试非引用类型变量(bools、ints 等)以进行调试。因为,你不能在 c# 中存储引用(就像你可以在 C++ 中传递一个指针一样),如在 c# 中存储引用中所述,我必须创建委托来获取和设置任何我想调试的变量这样的:
createCheckboxSetting("Debug Bool",
delegate(bool newVal) { testBool = newVal; },
delegate() { return testBool; });
我希望不必每次都编写此泡泡糖代码,以便调试表单中的代码生成控件更新传入的变量(通过表单复选框的 Click 事件)。有什么方法可以让它工作,以便我可以以以下方式调用该函数(或类似的简单方式)?
createCheckboxSetting("Debug Bool", ref testBool);
如果我尝试在 createCheckboxSetting 中创建委托,我会收到以下错误:“无法在匿名方法、lambda 表达式或查询表达式中使用 ref 或 out 参数 'VARIABLE_NAME'。” 如果有更清洁的方法来做到这一点,我真的不知道如何,出于显而易见的原因,我真的很想保持这种快速和简单的使用方式。
我非常感谢您的帮助,因为我仍在尝试习惯 C#。感谢您的任何建议!