我有一个关于转换类型的愚蠢但令人费解的问题。从代码中可以看到,我有一个变量lprod_monthylReport,它取决于ytm值可以是List<Monthly_Report>
或仅仅是Monthly_Report
。在两种情况下,我都需要变量具有相同的名称。
var lprod_monthlyReport = new List<Monthly_Report>;
if (ytm == true)
{
lprod_monthlyReport = _ProductRep.GetSpecificArchiveReport(prod.Prod_ID, lmonth, lyear, item.item_ID);
}
else
lprod_monthlyReport = _ProductRep.GetSpecificYTMReport(prod.Prod_ID, item.item_ID);
问题是,如果我在每个if(或else)节中声明变量,则编译器会报错,因为它表示已在此上下文中声明了该变量。
我已经尝试过铸造
lprod_monthlyReport = (Monthly_Report) _ProductRep.GetSpecificArchiveReport(prod.Prod_ID, lmonth, lyear, item.Item_ID);
但这是行不通的。我也尝试了as关键字,但没有成功。
您能帮我这个吗?谢谢
弗朗切斯科
最佳答案
这应该工作:
如果您有Monthly_Report
,只需将其添加到列表中...
List<Monthly_Report> lprod_monthlyReport;
if (ytm == true)
{
lprod_monthlyReport = new List<Monthly_Report>();
lprod_monthlyReport.add(_ProductRep.GetSpecificArchiveReport(prod.Prod_ID, lmonth, lyear, item.item_ID));
}
else{
lprod_monthlyReport = _ProductRep.GetSpecificYTMReport(prod.Prod_ID, item.item_ID));
}