考慮下面的代碼,我試圖實現自定義鏈接列表。將對象(通過引用傳遞)傳遞給函數不會保持更改
期望輸出:開始 - > 123 - > 11 - > NULL 實際輸出:開始 - > 11 - > NULL
class MyLinkList
{
public object data { get; set; }
public MyLinkList Next { get; set; }
}
public static void PrintLinkList(MyLinkList start)
{
Console.Write("Start-->");
while (start != null)
{
Console.Write(start.data + "-->");
start = start.Next;
}
Console.Write("NULL");
}
public static void AddNodeStart(MyLinkList start, object data)
{
MyLinkList newNode = new MyLinkList();
newNode.data = data;
newNode.Next = start;
start = newNode;
}
public static void Main()
{
MyLinkList n = new MyLinkList() { data = 11, Next = null };
AddNodeStart(n,123);
PrintLinkList(n);
Console.ReadLine();
}
的問題是,即使節點被添加到列表在AddToStart函數中,當控件返回主函數時,其值不會持久。
對象通過引用傳遞,爲什麼它的值沒有被持久化。如果我使用'ref'字,那麼我會得到預期的結果。
阿圖爾sureka