我正在使用ReSharper重构我的代码。当我尝试将一段代码移到该方法时,我得到以下警告:
The extracted code has multiple entry points
下面是我计划使用的方法签名:
private void GetRatePlanComponents(ProductPlan productPlan,
ProductRatePlan productRatePlan)
我在网上搜索,想知道这是什么意思。但运气不是很好。有人能解释一下吗?
作为参考,下面是我试图移到另一个方法中的代码片段:
QueryResult productRatePlanChargeQueryResult =
_zuoraService.query(string.Format(@"select Id, Name, IncludedUnits from
ProductRatePlanCharge where ProductRatePlanId = '{0}' and
ChargeModel = 'Overage Pricing'", productRatePlan.Id));
if (productRatePlanChargeQueryResult.size > 0)
{
foreach (ProductRatePlanCharge productRatePlanCharge
in productRatePlanChargeQueryResult.records)
{
string numberOfUnits = productRatePlanCharge.IncludedUnits.ToString();
if (productRatePlanCharge.Name.Equals("Users"))
{
productPlan.NumberofUsers = numberOfUnits;
}
else if (productRatePlanCharge.Name.Equals("Projects"))
{
productPlan.NumberofProjects = numberOfUnits;
}
else if (productRatePlanCharge.Name.Equals("Storage"))
{
decimal volumeOfStorage;
if (decimal.TryParse(productRatePlanCharge.IncludedUnits.ToString(),
out volumeOfStorage))
{
if (volumeOfStorage < 1) volumeOfStorage *= 1000;
productPlan.VolumeofStorage = volumeOfStorage.ToString();
}
else
{
productPlan.VolumeofStorage = numberOfUnits;
}
}
}
}
}
发布于 2011-10-04 04:28:51
当我试图提取的代码有几个抛出语句时,我见过ReSharper做同样的事情。
您可以像我在这种情况下所做的那样,一次系统地注释掉一行,直到找到ReSharper跳过的那一行。然后,您可以提取该方法并在之后取消对该行的注释。
或者你可以手动重构它。
https://stackoverflow.com/questions/7639777
复制相似问题