考虑以下代码,我正在尝试实现自定义链接列表。
预期输出:开始-->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”字,那么我会得到预期的结果。
阿图尔苏雷卡