索引处的数组元素始终返回0

时间:2018-02-08 19:03:24

标签: c# unity3d

我想在特定位置更改数组中的简单值,但即使数组中的值不为0,尝试更改该值时,也会变为0。 这发生在一个简单的循环中:

select your_table.fault,your_table.name,t5.restoreid
from (
    SELECT 
    T3.fault, t4.name,t2.item_id
    FROM table2 T2 
    INNER JOIN (
        SELECT a.*
        FROM table1 a
        LEFT JOIN table1 b ON a.item_id = b.item_id AND a.submit_id < b.submit_id
        WHERE b.submit_id IS NULL
    ) T1  ON T1.item_id = T2.item_id
    INNER JOIN table3 T3 ON T1.id = T3.run_id
    LEFT JOIN table4 T4
    ON 3.runname_id  = T4.id
) as your_table left join table5 t5 on your_table.item_id = t5.item_id 

我使用VS17调试器试图了解它究竟发生了什么,但我仍然不知道为什么会这样。在我的应用程序中,我已经将其他变量设置为数组中的元素,但这是我第一次看到类似的东西。 根据调试器,private final EditText milkdone; private final EditText brixdone; private double milkdone2; private double brixdone2; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); milkdone = (EditText) findViewById(R.id.milkliter); brixdone = (EditText) findViewById(R.id.brix); milkdone.setOnEditorActionListener(new OnEditorActionListener() { @Override public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { boolean handled = false; if (actionId == EditorInfo.IME_ACTION_DONE) { milkdone2 = Double.parseDouble(milkdone.getText().toString()); brixdone2 = Double.parseDouble(brixdone.getText().toString()); ,即使for (int i = 0; i < 4; i++) { int stat = child[i]; // stat becomes 0 even if child[i] is != 0 // some calculation on stat here }

enter image description here

这在整个循环中都会发生。我确信这是我缺少的东西,但我真的无法得到它是什么。

1 个答案:

答案 0 :(得分:6)

虽然调试器在这样的行上停止了,但它还没有执行那行代码。由于尚未执行该行,因此stat未分配child[i]的值,调试器仅显示整数(0)的默认值。它运作得很好。如果要查看值更改,请转到下一个语句。