0

ファイルで値が識別された場合にプロセスを実行する、取り組んでいるプロジェクトがあります

if (read_txt.Contains("one") == true)
   (do.something)
else if ((read_txt.Contains("two") == true)
   (do.something.else)
else
   (do.last.thing)

(do.something) と (do.something.else) には、プロセス、if ステートメントなど、多くのものが含まれています。

たとえば、(do.something) には次が含まれます。

if (read_txt.Contains("one") == true)
   write_log
   process
   read_file
   if file.contains
        write_log
   else
        write_log
        process
   process
   if file.contains
        write_log
   else
        write_log

私が抱えている問題は、「read_txt」のファイルに「1」と「2」の両方が含まれている場合、(do.something) と (do.something.else) の両方の要素をコピーせずに実行できるようにしたいということです。かなりあるので、もう一度コードアウトします。

これを行う最良の方法は何ですか?

私は C# の初心者ですが、このプロジェクトのおかげですぐに学習できます!!

4

3 に答える 3

2

私が抱えている問題は、「read_txt」のファイルに「1」と「2」の両方が含まれている場合、(do.something) と (do.something.else) の両方の要素をコピーせずに実行できるようにしたいということです。かなりあるので、もう一度コードアウトします。

それは簡単です。それを にせず、else if2 つのifステートメントを使用するだけです。

bool foundNone = true;

if(read_txt.Contains("one"))
{
    DoFirstThing();
    foundNone = false;
}

if(read_txt.Contains("two"))
{
    DoSecondThing();
    foundNone = false;
}

if(foundNone)
{
   DoThirdThing();
}

これは、見つかった値ごとにコードを実行し、値が見つかったときに停止しないことを意味しますが、他のオプションのいずれにもヒットしなかった場合は、最後の処理のみを実行します。

于 2013-08-30T15:00:36.803 に答える
1
bool not12 = true;
if (read_txt.Contains("one")) { (do.something); not12 = false;}
if (read_txt.Contains("two")) {(do.something.else); not12 = false;}   
if(not12) (do.last.thing);
于 2013-08-30T14:58:35.640 に答える
0

(do.something) から関数を作成するか、次のように最初の if ステートメントで両方が同時に true であることを確認します。

if(read_txt.Contains("one") && read_txt.Contains("two"))
于 2013-08-30T15:00:51.637 に答える