比方說,我有一個調用一些參數的另一種方法一種方法,是這樣的:通過引用傳遞,而不是返回一個值
public void SomeMethod()
{
List<SomeObject> TheList = SomeQueryThatReturnsTheList();
TheList = DoSomeWorkWithList(TheList);
}
public List<SomeObject> WorkForList(List<SomeObject> TheListAsParameter)
{
foreach (SomeObject x in TheListAsParameter)
{
....
}
return TheListAsParameter;
}
正如你所看到的,WorkForList
返回收到的列表的方法。我的問題是這樣的:如果我不返回列表並重寫簽名爲public void WorkForList(List<SomeObject> TheListAsParameter)
通過引用在C#去意味着SomeMethod
中的列表將更新與WorkForList
方法完成的工作?如果是這樣,下面的代碼將工作相同:
public void SomeMethod()
{
List<SomeObject> TheList = SomeQueryThatReturnsTheList();
DoSomeWorkWithList(TheList);
}
public void WorkForList(List<SomeObject> TheListAsParameter)
{
....
}
謝謝。
你爲什麼不簡單地測試它? – poitroae 2013-02-11 12:54:02
我不認爲這個問題值得這麼多downvotes,它是一個有效的問題,我看到很多開發人員對c#參數傳遞的概念感到困惑# – Habib 2013-02-11 13:02:43
@Habib它顯示缺乏有關通過引用與傳遞的基礎研究值。這些概念不是特定於C#的,並且已經多次記錄。 – Romoku 2013-02-11 13:04:37