بله، در مثال قبلی، هر بار که برنامه اجرا میشود، مقدار `count` افزایش مییابد ولی اگر برنامه بسته شود و دوباره اجرا شود، مقدار `count` به حالت اولیه بازمیگردد که صفر است.
برای ذخیره و بازیابی مقدار `count` بین اجراهای مختلف برنامه، میتوان از روشهای دیگری مانند ذخیره مقدار در فایل یا پایگاه داده استفاده کرد. این هم یک مثال استفاده از فایل برای ذخیره و بازیابی مقدار `count` :
using System;
using System.IO;
public class Counter
{
private static int count = 0;
public Counter()
{
count++;
}
public static int GetCount()
{
return count;
}
public static void SaveCountToFile(string filePath)
{
File.WriteAllText(filePath, count.ToString());
}
public static void LoadCountFromFile(string filePath)
{
if (File.Exists(filePath))
{
string countString = File.ReadAllText(filePath);
int.TryParse(countString, out count);
}
}
}
public class Program
{
public static void Main(string[] args)
{
Counter.LoadCountFromFile("count.txt");
Counter c1 = new Counter();
Counter c2 = new Counter();
Counter c3 = new Counter();
Console.WriteLine(Counter.GetCount());
Counter.SaveCountToFile("count.txt");
}
}
در این مثال، متدهای `SaveCountToFile` و `LoadCountFromFile` اضافه شده. متد `SaveCountToFile` مقدار `count` را در یک فایل متنی ذخیره میکند و متد `LoadCountFromFile` مقدار ذخیره شده را از فایل بارگزاری میکند. در ابتدای اجرای برنامه، مقدار `count` از فایل `count.txt` بارگزاری میشود. سپس نمونههای `Counter` ساخته میشوند و مقدار `count` نمایش داده میشود. در نهایت، مقدار `count` در فایل ذخیره میشود. با اجرای مجدد برنامه، مقدار `count` از فایل بارگزاری میشود و ادامه مییابد.