Tim*_*Tim 4 c# fxcop static-analysis
我正在使用 FxCop 1.36 运行静态代码分析,并且不断收到警告 CA1034:NestedTypesShouldNotBeVisible。
我会理解父类是否被声明为内部或私有,但它是公共的。为什么将 TimerReset 声明为公开是不好的?
我错过了什么,或者这是可以忽略的东西?
感谢您提供任何意见!
以下是导致此警告的代码摘录:
namespace Company.App.Thing
{
public partial class Page : XtraPage
{
public delegate void TimerResetDelegate(object sender, EventArgs e);
private TimerResetDelegate _timerReset;
public Page()
{
InitializeComponent();
}
public TimerResetDelegate TimerReset
{
set
{
if (null != (_timerReset = value))
{
checkBox.Click += new EventHandler(_timerReset);
textField.Click += new EventHandler(_timerReset);
textField.KeyDown += new KeyEventHandler(_timerReset);
TimeField.Click += new EventHandler(_timerReset);
TimeField.KeyDown += new KeyEventHandler(_timerReset);
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
一般来说,嵌套类型更难“发现”。
例如,要使用您的嵌套类型,我必须编写以下内容
Page.TimerResetDelegate timer = new Page.TimerResetDelegate();
Run Code Online (Sandbox Code Playgroud)
尽管上面是有效的 C# 代码,但它读起来并不像通常的类型用法。
当您想要定义要在内部使用的类型并且您将避免使用上述代码时,通常会使用嵌套类型。这就是 FxCop 向您发出警告的原因。如果你愿意,你可以忽略它。就个人而言,我会将我的嵌套类型保持为私有。如果我希望调用者使用该类型,我会将它们移动到适当的命名空间。
| 归档时间: |
|
| 查看次数: |
5061 次 |
| 最近记录: |