声明的数据类型不保留值?

Declared data type does not retain value?

我不确定以前是否有人问过这个问题,但我来了。

class Program
{

    protected int ID;

    static void Main(string[] args)
    {
        var Obj = new Program();
        Obj.Inc();
        Console.WriteLine(Obj.ID);
        Console.ReadLine();
    }

    public int Inc()
    {
        return ++ID;
    }

}

输出:1

问题是这样的,当我再次 运行 时,我的输出不应该是 2,但我每次 运行 程序时总是得到 1。

是的,每次您再次 运行 程序时都会得到输出 1。 当你重新运行程序时,一切都会重新初始化。所以你需要将它存储在数据库中以备将来取回。

当您的应用程序重新启动时,它不会记住之前 运行 的变量。

如果需要,您需要保留它们的值并在启动时读取它们。有很多很多方法可以做到这一点。

您可以使用配置文件、设置文件、任何格式的文本文件、序列化 类,甚至可能是数据库。只需在网络或本网站上搜索 "C# persist variables"。

参见Storing settings/variables persistantly in C#/.NET, How to save variable values on program exit?,依此类推。