代码检查:[MustDisposeResource] 注解未从基类构造函数继承,需显式添加
如果您在调用代码中使用了 [MustDisposeResourceAttribute] ,来自 JetBrains.Annotations ,用于 强制资源处理 ,您需要注意,如果注解放置在基类的构造函数上,它不会被继承。 这种设计的动机是派生类可能会处理资源的释放。 在其他情况下,您需要显式地为派生类或其构造函数添加 [MustDisposeResourceAttribute] ,以通知其用户需要释放资源。
public class HasNativeResources : IDisposable
{
[MustDisposeResource]
public HasNativeResources(object a)
{
// Do something with a
}
[HandlesResourceDisposal] public void Dispose() { }
}
class MayHaveNativeResources : HasNativeResources
{
public MayHaveNativeResources(object b) : base(b)
{
Console.WriteLine();
}
}
public class HasNativeResources : IDisposable
{
[MustDisposeResource]
public HasNativeResources(object a)
{
// Do something with a
}
[HandlesResourceDisposal] public void Dispose() { }
}
class MayHaveNativeResources : HasNativeResources
{
[MustDisposeResource]
public MayHaveNativeResources(object b) : base(b)
{
Console.WriteLine();
}
}
最后修改日期: 2025年 9月 26日