我可以使属性抑制警告吗?

Posted

技术标签:

【中文标题】我可以使属性抑制警告吗?【英文标题】:Can I make an attribute suppress warnings? 【发布时间】:2020-07-31 19:09:50 【问题描述】:

我已经创建了一个属性,可以在运行时自动为变量赋值:

    [Assign(AssignmentTime.Awake)]
    private Rigidbody _rigidBody;

但是,编译器发出警告,这是可以理解的,这个值永远不会被分配,并且永远是空的。 有没有办法让属性自动禁用警告?我真的不想每次我想使用那个属性时都写那个警告抑制#pragma。

【问题讨论】:

【参考方案1】:

您可以指定一个默认值,例如null。这将使警告消失。您的分配以及检查员分配稍后将覆盖默认值。

[Assign(AssignmentTime.Awake)]
private Rigidbody _rigidBody = null;

【讨论】:

我不敢相信这真的有效。它仍然在 IDE 中强调它,但 Unity 不再将其显示为警告。不理想,但会做。谢谢! 是的,警告在 ide 或统一控制台中。我更喜欢统一控制台尽可能免费。【参考方案2】:

明确地说:不,您不能通过自定义属性抑制警告。您可以使用:

[SuppressMessage(...)] 除了你的属性 #pragma warning disable|enable codes

这两者都可以通过 IDE 中的警告弹出窗口获得

【讨论】:

以上是关于我可以使属性抑制警告吗?的主要内容,如果未能解决你的问题,请参考以下文章

可以在 Visual Studio 2010 中抑制“无法找到或打开 PDB 文件”警告吗?

Matlab:抑制uiputfile的警告对话框

如何抑制无反关系的警告?

如何抑制 LLVM 自动合成警告?

代码生成器生成文件的代码分析 - 如何抑制警告?

VSCode:是不是可以抑制实验性装饰器警告