C# 无法将字符串分配给异步任务中的bool结果
我有这样一个场景:C# 无法将字符串分配给异步任务中的bool结果,c#,task-parallel-library,C#,Task Parallel Library,我有这样一个场景: 我有一个异步任务方法,在这个方法中包括3个作业,它们都返回布尔结果(true/false)。此代码的主要目标是,如果所有三个作业都返回false值(此部分工作得很好),则创建一个JIRA问题,但如果三个作业中有一个或两个false结果,则应创建两个独立的JIRA问题(如果有两个错误) 这里有一个代码: 公共静态异步任务TaskArray(字符串urlTypeId、int-ID、字符串l) { 异步任务t1() { 布尔结果=真; 尝试 { FindElement(driver
我有一个异步任务方法,在这个方法中包括3个作业,它们都返回布尔结果(true/false)。此代码的主要目标是,如果所有三个作业都返回
false
值(此部分工作得很好),则创建一个JIRA问题,但如果三个作业中有一个或两个false
结果,则应创建两个独立的JIRA问题(如果有两个错误)
这里有一个代码:
公共静态异步任务TaskArray(字符串urlTypeId、int-ID、字符串l)
{
异步任务t1()
{
布尔结果=真;
尝试
{
FindElement(driver,SelectorTypes.ByXpath,“xpath”);
}
catch{result=false;TestResult(ID,ErrorText(1),driver,urlTypeId,l);}
返回结果;
}
异步任务t2()
{
布尔结果=真;
尝试
{
FindElement(driver,SelectorTypes.ByXpath,“xpath”);
}
catch{result=false;TestResult(ID,ErrorText(2),driver,urlTypeId,l);}
返回结果;
}
异步任务t3()
{
布尔结果=真;
尝试
{
FindElement(driver,SelectorTypes.ByXpath,“xpath”);
}
catch(异常e){result=false;(ID,ErrorText(3),driver,urlTypeId,l);}
返回结果;
}
//正在创建票证
{
任务bee=t1();
任务geo=t2();
任务mag=t3();
if(wait-bee==false&&wait-geo==false&&wait-mag==false)
{
//所有结果均为false,创建1张票证
CreateTicket(ID,GErrorText(4),驱动程序,urlTypeId,l,“主”、“桌面”、“网站”、“SB”、“全部”);
}
其他的
{
//1或2个错误结果为每个错误创建票证
var BooleanArray=new bool[]{wait bee,wait geo,wait mag};
var NamesArray=新字符串[]{“John”、“George”、“Nick”};
foreach(布尔数组中的布尔值)
{
如果(值==false)
{
CreateTicket(ID,ErrorText(“字符串”),驱动程序,urlTypeId,l,“主”,“桌面”,“网站”,“SB”,名称数组[j]);
}
}
}
}
在最后的else
中,我试图:
false
结果的数量foreach
并创建一个JIRA票证,该票证将传递正确的错误文本作为参数之一,并且它将从NamesArray
false
,它将创建一个票证(正如我前面提到的,这种情况很好)false
结果,它将进入最后一个else并完成foreach
两次(因为我们有两个假结果)。在每次进入foreach时,传递给CreateTicket
方法的参数不是静态的,而是动态的。例如:If“t1”和“t2”返回假结果,必须完成以下操作:提前谢谢你。
var results=wait Task.WhenAll(bee,geo,mag);
if(!(results[0]| | | | results[1]| | | results[2]){create single ticket否则{if(!results[0]){create ticket John if(!results[1]){create ticket ge乔治}if(!results[2]){create ticket Nick}
var=new name=List()!(等待蜜蜂)姓名。添加(“约翰”);如果(!(等待地理))姓名。添加(“乔治”);…
?如果要将字符串与布尔结果相关联,最好将它们组合到一个数据结构中,但即使使用现有的结构,如果要切换到for
循环,也可以直接使用索引。您可以装配foreach循环来提供索引,但它看起来很笨拙,但至少不复杂未知的解决方案是int index=0;foreach(…){…code here;index++;}
。我仍然不知道哪里有错误或问题。您描述了代码,但没有问题。此外,我不知道如何获得foreach中使用的j值。