我好像有这个问题。首先,if语句有效,最后一个有效。否则,如果不起作用。我该如何纠正呢?
if (pProp.Name == ("_ProjectName"))
{
var value = pProp.get_Value().ToString();
if (value.IndexOf("hayy", StringComparison.OrdinalIgnoreCase) > 0)
{
using (StreamWriter writer = new StreamWriter(@"C:\Users\ngardner\Desktop\test.txt", true))
{
writer.Write("B");
return;
}
}
else
if (value.IndexOf("incu", StringComparison.OrdinalIgnoreCase) > 0)
{
using (StreamWriter writer = new StreamWriter(@"C:\Users\ngardner\Desktop\test.txt", true))
{
writer.Write("B");
return;
}
}
else
{
using (StreamWriter writer = new StreamWriter(@"C:\Users\ngardner\Desktop\test.txt", true))
{
writer.Write("M");
}
}
}
这是为了澄清我对此进行编码的尝试。
我需要扫描两个不同字符段组合的“_ProjectName”字段。如果该字段为Purchase,那么我希望第二次搜索为true,并写入“B”。
搜索“Hayy”,如果发现使用写出“B”到文本文件 搜索“Purch”,如果找到则使用“B”写入文本文件 如果均未找到,请将“M”写入文本文件
答案 0 :(得分:4)
您的缩进模糊了这里发生的事情:最终else
实际上是最外层if
区块的一部分。
你的if else
以换行符分隔,确实非常模糊!
缩进正确,这些问题消失了!
答案 1 :(得分:4)
试试这个:
if (pProp.Name == "_ProjectName")
{
var value = pProp.get_Value().ToString();
using (StreamWriter writer = new StreamWriter(@"C:\Users\ngardner\Desktop\test.txt", true))
{
if (value.IndexOf("hayy", StringComparison.OrdinalIgnoreCase) > -1)
{
writer.Write("B");
}
else
{
if (value.IndexOf("incu", StringComparison.OrdinalIgnoreCase) > -1)
{
writer.Write("B");
}
else
{
writer.Write("M");
}
}
}
// return here if needed
}
答案 2 :(得分:1)
尝试以下方法,我认为现在可行。
if (pProp.Name == ("_ProjectName"))
{
var value = pProp.get_Value().ToString();
if (value.IndexOf("hayy", StringComparison.OrdinalIgnoreCase) > 0)
{
using (StreamWriter writer = new StreamWriter(@"C:\Users\ngardner\Desktop\test.txt", true))
{
writer.Write("B");
return;
}
}
else
{
if (value.IndexOf("incu", StringComparison.OrdinalIgnoreCase) > 0)
{
using (StreamWriter writer = new StreamWriter(@"C:\Users\ngardner\Desktop\test.txt", true))
{
writer.Write("B");
return;
}
}
else
{
using (StreamWriter writer = new StreamWriter(@"C:\Users\ngardner\Desktop\test.txt", true))
{
writer.Write("M");
}
}
}
}
你错过的是在第一个else语句中打开一个括号,然后在结尾处关闭它。