おそらく非常に単純な初心者の質問です。基本的に、私が書いたサービスを制御する多くの変数を含む txt ファイルがあります。現在、そこから変数を必要とするすべてのボイドで、ファイルを開き、ファイルを読み取り、行を選択してから変数を使用しています。
私の質問は、変数をグローバルに割り当てる方法があるかどうかです。私のすべてのボイドがそれらを使用できるように。そうすれば、すべてを読み取ってファイルを開き、すべてを変数に割り当てるだけで済みます。ほとんどの場合、同じ変数を探してファイルを複数回開いている現在の方法ではありません。
質問を編集し、より良い説明を試みるためにいくつかのコードを追加しました。その下には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");
}