为什么堆栈计数重置?

时间:2018-04-15 09:11:17

标签: c#

出于某种原因,当loadStack()方法完成时,它的计数重置为0.不知道为什么。
这是我的方法:

    static Stack<string> Proxies = new Stack<string>();

    private static void loadStack()
    {
        foreach (string s in File.ReadLines(pfile))
        {
            Proxies.Push(s);
            Console.WriteLine(Proxies.Count());
        }
    }  

这是我的主要方法:

    static string pfile;  
    static void Main(string[] args)
    {
        pfile = Console.ReadLine();  
        loadStack();
    }

整个文件都很好,但一旦完成最后一行,计数就会重置为0.

1 个答案:

答案 0 :(得分:-1)

以下代码完美运行,即使在loadStack方法完成后,Main函数也会打印&#34; 3&#34;正如所料。 Here是C#小提琴链接供您参考。

public class Program
{
    static Stack<string> Proxies = new Stack<string>();
    static List<string> lst = new List<string>{"a","b","c"};

    public static void Main()
    {
        loadStack();
        Console.WriteLine(Proxies.Count);
    }

    private static void loadStack()
    {
        foreach (string s in lst)
        {
            Proxies.Push(s);
            Console.WriteLine(Proxies.Count);
        }
    } 
}