最近私のアプリケーションに、ダウンロードしたファイルから日付を読み取り、ファイルから現在の日付と日付の差を求める関数を追加しました。完了すると、フォーラムのラベルに表示されます。視覚的にチェックしても文字列の比較に失敗しました
例外があります:ファイル内の文字列が "Lifetime"と等しい場合、日付として処理して代替ロジックに従うべきではありません。しかし、文字列が "Lifetime"かどうかをチェックしようとすると、文字列= "Lifetime"であってもtrueを返しません。
EDIT:NisargのヘルプでFormatExceptionを修正しました。今、私のラベルは値に変更されていません。これが問題です。
EDIT2:私は愚かだと感じます。私は1つの機能でMainを2回起動してから、main1を使用してフォームとメインを切り替えてラベルを設定していることが分かりました。 これは、ラベルが正しく機能していなかった理由です。 Nisargと他のすべての貢献者に感謝します。
コード例:
string subScript = File.ReadAllText(Path.GetTempPath() + txtUsername.Text + ".txt");
Main main = new Main();
double dSubLeft;
main.dateLabel.Text = subScript;
if (subScript == "Lifetime") // it bypasses this, apparently blank
{
main.daysLeftLabel.Text = "Expires: Never";
}
if (subScript != "Lifetime") //Goes here and throws error saying subScript is not valid DateTime
{
dSubLeft = Math.Round(Convert.ToDouble(Convert.ToString(((Convert.ToDateTime(subScript)) - DateTime.Now).TotalDays)));
string sSubLeft = Convert.ToString(dSubLeft);
main.daysLeftLabel.Text = "Expires: " + sSubLeft + " Days";
}
このライン**文字列の添字= File.ReadAllText(Path.GetTempPath()+ txtUsername.Text +」を使用していなければならないと思います。txt "); **変数の文字列データを埋め込む –
' Convert.ToDateTime() 'には日付のような文字列が必要です(2010年7月14日のように)。変換できない文字列「生涯」を送信しています。 – Kevin
@Kevinはい、それは生涯と同じではないことを確認しました。それを止めてはいけませんか? – elite