考虑下面的代码,我试图实现自定义链接列表。将对象(通过引用传递)传递给函数不会保持更改
期望输出:开始 - > 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