我正在处理一个项目,如果在文件中标识了一个值
,它会运行一个进程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'中的文件同时包含“one”和“two”,我希望能够运行两个元素,(do.something)和(do.something.else),没有再复制代码,因为有很多。
最好的方法是什么?
我是C#的初学者,但是这个项目正在帮我快速学习!
答案 0 :(得分:2)
我遇到的问题是,如果'read_txt'中的文件同时包含“one”和“two”,我希望能够运行两个元素,(do.something)和(do.something.else),没有再复制代码,因为有很多。
这很简单,只是不要将其设为else if
,只需要两个if
语句。
bool foundNone = true;
if(read_txt.Contains("one"))
{
DoFirstThing();
foundNone = false;
}
if(read_txt.Contains("two"))
{
DoSecondThing();
foundNone = false;
}
if(foundNone)
{
DoThirdThing();
}
这意味着它将为找到的每个值运行代码,并且在找到它时不会停止,但是如果其他选项的 none 被命中,它仍然只会执行最后一项操作。
答案 1 :(得分: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);
答案 2 :(得分:0)
从(do.something)中编写一个函数和/或让你的第一个if语句检查两者同时为真,例如:
if(read_txt.Contains("one") && read_txt.Contains("two"))