我有以下代码,我想以最少重复代码的方式编写代码。如何消除重复的代码?
if (Categories != null)
{
bool flag=false;
foreach (dynamic usableCat in Category.LoadForProject(project.ID))
{
foreach (dynamic catRow in Categories)
{
if (usableCat.ID == catRow.ID)
flag = true;
}
if (!flag)
{
int id = usableCat.ID;
Category resolution = Category.Load(id);
resolution.Delete(Services.UserServices.User);
}
}
}
if (Priorities != null)
{
bool flag = false;
foreach (dynamic usableCat in Priority.LoadForProject(project.ID))
{
foreach (dynamic catRow in Priorities)
{
if (usableCat.ID == catRow.ID)
flag = true;
}
if (!flag)
{
int id = usableCat.ID;
Priority resolution = Priority.Load(id);
resolution.Delete(Services.UserServices.User);
}
}
}
请注意,类别和优先级没有包含ID的通用基本类型或接口。
我假设你没有访问更改优先级或类别类? – RCIX 2010-07-15 06:43:42
在您的代码示例中,您使用的是'dynamic',而您似乎可以使用'var'(早期绑定)代替。它看起来像你真正想要的是使用'dynamic'来获得迟绑定语义,在这一点上没有共同的基类型无关紧要,你可以使用'ID'字段。 (也就是说,它听起来像你想使用[鸭打字](http://en.wikipedia.org/wiki/Duck_typing)。) – 2010-07-15 06:48:26
+1鸭打字:) – onof 2010-07-15 06:59:28