我写了这段代码,但在代码审查过程中,有人建议这是重复的代码,我需要从这段代码中删除代码重复.任何人都可以建议我如何更好地使这些代码,以避免重复.
private void ShowHideEmailContents(string email, string email2, string format, string tooltip, bool isReadOnly)
{
if (isReadOnly)
{
hlEmail.NavigateUrl = string.Format(format, email);
hlEmail2.NavigateUrl = string.Format(format, email2);
hlEmail.Text = email;
hlEmail2.Text = email2;
hlEmail.ToolTip = tooltip;
hlEmail2.ToolTip = tooltip;
hlEmail.Visible = isReadOnly;
hlEmail2.Visible = isReadOnly;
txtEmail.Visible = !isReadOnly;
txtEmail2.Visible = !isReadOnly;
}
else
{
txtEmail.Text = email;
txtEmail2.Text = email2;
}
}
Run Code Online (Sandbox Code Playgroud)
请注意,复制存在是因为您只对不同的对象执行两次相同的操作.
要解决这个问题,请创建一个只执行一次的新方法:
private static void ShowHideEmailContents(?? hl, ?? txt, string email, string format, string tooltip, bool isReadOnly)
{
if (isReadOnly)
{
hl.NavigateUrl = string.Format(format, email);
hl.Text = email;
...
}
else
{
txt.Text = email;
}
}
Run Code Online (Sandbox Code Playgroud)
并称之为两次:
private void ShowHideEmailContents(string email, string email2, string format, string tooltip, bool isReadOnly)
{
ShowHideEmailContents(hlEmail, txtEmail, email, format, tooltip, isReadOnly);
ShowHideEmailContents(hlEmail2, txtEmail2, email2, format, tooltip, isReadOnly);
}
Run Code Online (Sandbox Code Playgroud)