类名与超类名相同¶
ID: cs/class-name-matches-base-class
Kind: problem
Security severity:
Severity: recommendation
Precision: high
Tags:
- maintainability
- readability
- naming
Query suites:
- csharp-security-and-quality.qls
此规则标识名称与其扩展的类名称相同的类。这可能会导致混淆。
建议¶
更改子类的名称,使其更清楚地表明其用途。通常可以表达它与超类的不同之处。
示例¶
在此示例中,稍后在 Players 类中对 ArrayList 的引用可能会造成混淆。
class Players
{
private ArrayList playerList;
class ArrayList : System.Collections.ArrayList
{
public String GetBestThree()
{
return "1st: " + this[0] + "\n 2nd:" + this[1] + "\n 3rd:" + this[2];
}
}
}
通过使用更具描述性的名称进行修复¶
可以通过将 Players.ArrayList
类名更改为 Players.PlayerList
来轻松修复该示例。这更具描述性,并且避免了与 Collections
中的 ArrayList
类混淆。
参考文献¶
Robert C. Martin,《代码整洁之道 - 敏捷软件工艺手册》,§17.N4。Prentice Hall,2008 年。