首页 > 解决方案 > C#:如何指示正在从项目外部使用一个假定未使用的方法?

问题描述

我正在Unity与其他平台(例如AndroidiOS. 我的 Unity 脚本中有一些方法被调用AndroidiOS例如

public void ApplyEffect()
{
    //Some code
}

此方法仅在 Unity 代码中被调用Android或不被引用。iOS结果,我看到了警告

Method 'ApplyEffect' is never used

但更重要的是,这些方法会让其他人感到困惑,因为它给人的印象是这些方法没有被使用。

我想有一种方法来表明正在使用这些方法,以免有人错误地删除它们。我觉得有一些表示也会使代码更具可读性。但是我该怎么做呢?

Jetbrains Rider 有一个UsedImplicitly看起来很完美的注释,但我认为它可能不适用于其他编辑器。评论是一种选择,但这似乎不是一个好的解决方案。

有什么建议么?谢谢!

标签: c#unity3d

解决方案


我认为此警告仅由 ReSharper 本身引发,而不是本机 C# 警告。

正如您已经提到的,您可以使用[UsedImplicitly]ReSharper 中的属性来消除警告,但正如您所指出的,不使用 ReSharper 或 Jetbrains 的人不会知道该属性的用途,但也不会首先收到警告。所以它仍然需要一个注释来解释该属性的作用以及它为什么存在(此时你可以有一个注释来解释它首先在那里使用)

另一种选择(仅适用于 JetBrains/ReSharper 用户)是关闭solution-wide analysis应该阻止 ReSharper 检查该警告的选项,但这可能不是一个令人满意的解决方案,因为您可能正在使用它,因为您需要该功能。

一个更有针对性的解决方案是放在// ReSharper disable once UnusedMember.Global方法的最开始ApplyEffect,这应该禁用该方法的警告,同时对于非 ReSharper 用户来说仍然很清楚。

简而言之,由于它是一个 ReSharper/Jetbrains 警告,因此需要 ReSharper/Jetbrains 解决方案,唯一的“全局”解决方案将评论该方法的实际使用情况以及调用位置。(我个人认为这是要走的路)


推荐阅读