C# 我可以设置一个属性来抑制警告吗?

C# 我可以设置一个属性来抑制警告吗?,c#,visual-studio,unity3d,C#,Visual Studio,Unity3d,我创建了一个属性,在运行时自动为变量赋值,如下所示: [Assign(AssignmentTime.Awake)] private Rigidbody _rigidBody; 然而,编译器给出了一个警告,可以理解,这个值永远不会被赋值,并且总是空的。 有没有办法使属性自动禁用警告?我真的不想每次使用该属性时都编写警告抑制#pragma。您可以指定默认值,如null。这将使警告消失。您的分配以及检查器分配稍后将覆盖默认值 [Assign(AssignmentTime.Awake)

我创建了一个属性,在运行时自动为变量赋值,如下所示:

    [Assign(AssignmentTime.Awake)]
    private Rigidbody _rigidBody;
然而,编译器给出了一个警告,可以理解,这个值永远不会被赋值,并且总是空的。
有没有办法使属性自动禁用警告?我真的不想每次使用该属性时都编写警告抑制#pragma。

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

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

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

  • [SuppressMessage(…)]
    除了您的属性之外
  • #pragma警告{禁用|启用}{code}

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

我真不敢相信这真的起作用了。它仍然在IDE中强调它,但Unity不再将其作为警告。不理想,但可以。谢谢是的,警告在ide或unity控制台中。我希望unity控制台尽可能自由。