这里可能是一个非常简单的noob问题。基本上我有一个txt文件,它有许多控制我写的服务的变量。目前在每个需要一个变量的void中,我打开文件,读取文件,选择行并使用变量。从一个公共区域获取变量到另一个
我的问题是,是否有一种方法来全局分配变量。这样我所有的空洞都可以使用它们。这样,我只需要在读取所有内容后打开文件,将所有内容分配给一个变量。而不是我现在正在做的那种方式,我多次打开文件,在多数情况下寻找相同的变量。
我编辑了我的问题,并添加了一些代码以尝试更好地解释。 所以下面我有2个空隙。他们都打开相同的文件,但在文件中查找不同的行。我想知道是否可以创建一个读取整个文件的“全局”变量列表,然后我可以调用我需要的变量,而不必每次打开文件都需要信息。
public void day_timer()
{
string temptimer = "";
string timeloop = "";
using (var streamReader = System.IO.File.OpenText(@"C:\somefile"))
{
var lines = streamReader.ReadToEnd().Split("\r\n".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
foreach (var line in lines)
{
if (line.Contains("Day_Time:"))
{
temptimer = line;
continue;
}
}
}
timeloop = temptimer.Remove(0, 9);
int inter = Convert.ToInt32(timeloop);
System.Timers.Timer timer1 = new System.Timers.Timer();
InitializeComponent();
timer1.Elapsed += new ElapsedEventHandler(timer1_Elapsed);
timer1.Interval = inter * 1000 * 60;
timer1.Enabled = true;
timer1.Start();
error_handling("backup started " + DateTime.Now + ". Incremental Backup set to every " + timeloop + " Minutes", "Incbackuplog.txt");
}
//Incrememtal Backup Timer
public void inc_timer()
{
string temptimer = "";
string timeloop = "";
using (var streamReader = System.IO.File.OpenText(@"C:\somefile"))
{
var lines = streamReader.ReadToEnd().Split("\r\n".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
foreach (var line in lines)
{
if (line.Contains("Inc_interval:"))
{
temptimer = line;
continue;
}
}
}
timeloop = temptimer.Remove(0, 13);
int inter = Convert.ToInt32(timeloop);
System.Timers.Timer timer1 = new System.Timers.Timer();
InitializeComponent();
timer1.Elapsed += new ElapsedEventHandler(timer1_Elapsed);
timer1.Interval = inter * 1000 * 60;
timer1.Enabled = true;
timer1.Start();
error_handling(" Backup Started "+DateTime.Now+". Incremental Backup set to every "+timeloop+" Minutes", "Incbackuplog.txt");
}
有很多方法可以做到这一点,很难推荐没有一些代码或更多信息的路径。 –
是的。你有什么特别的问题?发布您的当前代码可能会有帮助,因为它可能会突出显示阻止您的内容。但是你似乎明白你的描述需要做什么,那么问题是什么? –
如果你正在寻找建议,那么如果我要实现这样的功能,我会创建一个类,该属性与来自文本文件的变量相匹配,并且有一些像'bool isFileRead'这样的标志。然后,当我想使用某个变量时,我首先检查标志 - 如果'isFileRead'等于false,我将读取文本文件并赋值,否则它已经被读取并使用类属性。 – Leron