c# – Out参数可能在访问之前未被初始化
为什么是下面的代码
private static List<WorkflowVariableDataSet> MergeDatasetsListBranch(out List<WorkflowVariableDataSet> datasetsList) { if(datasetsList == null) datasetsList=new List<WorkflowVariableDataSet>(); datasetsList=new List<WorkflowVariableDataSet>(); return datasetsList; } 在第一个if语句中产生错误: Out parameter 'datasetsList' might not be initialized before accessing. 我知道在这一点上它应该是未初始化的,但是这个词可能表明这个错误在于可能的未初始化的对象访问(当它甚至不被访问时,它是引用,被检查). Ofc不会用ref关键字发生,但我很好奇参考检查如何违反out-parameters策略. 编辑 object o; if(o==null) ... 解决方法
Compiler Error CS0269
所以把一个外部参数视为未分配的.你是负责任的人. 所以只要删除if: datasetsList = new List<WorkflowVariableDataSet>(); 如果要处理传递给此方法的列表,请使用ref intead(如上所述): (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |