遍历列表后使用未分配的局部变量

时间:2017-07-04 23:22:32

标签: c# list json.net

List <State> states = JsonConvert.DeserializeObject <List<State>> (json);

State state;
foreach(State i in states) {
if (i.StateID == Convert.ToInt32(extendedProperties["WFState"])) {
    state = i;
    } 
else {}
}

try {
    btnApprove.Visible = state.Actions.Approved.NextStateID != null ? true : false;
    btnApprove.Text = state.Actions.Approved.Title.ToString();
}
catch (Exception ex) {
    btnApprove.Visible = false;
}
"state"中的

"state.Actions.Approved.NextStateID != null ? true : false;"即使已分配,也会使用“未分配的局部变量”。

2 个答案:

答案 0 :(得分:1)

如果states中没有任何内容,该怎么办? <{1}}可能未填充。

可能是这样的:

state

答案 1 :(得分:0)

如果符合以下情况,jar -u file.jar file.txt变量将被取消分配:

  • state列表为空,或
  • 条件states对于列表中的所有状态均为false。

您需要将if (i.StateID == Convert.ToInt32(extendedProperties["WFState"]))变量初始化为state(或者更好的是有效状态值)以避免编译器警告。