我對此有點困惑。爲什麼數組不爲空?
private void button1_Click(object sender, EventArgs e)
{
int i = 1;
int[] p=new int[4];
p[0] = 25;
method(p);
string o = p[0].ToString();
}
private void method(int[] k)
{
k[0] = 34;
k = null; //##
}
場景1:如果我刪除k=null
,那麼我的p[0]
原來作爲34
這是在「方法」函數修改。數組是引用類型,所以沒什麼好奇怪的。
場景2:與k=null
,仍然我的p[0]
返回34
而不是null
。爲什麼是這樣?在這裏,我把整個數組作爲null,但第一個元素仍然如何攜帶34
?
你*不*通過引用傳遞。這需要'ref'關鍵字。如果使用賦值運算符(=),除非通過引用傳遞,否則它不會影響調用範圍中的變量。但是,如果更改常規參數的* properties *和* state *,那麼*會更改調用範圍中的變量。 –