c# - C#:如何指示正在从项目外部使用一个假定未使用的方法?
问题描述
我正在Unity
与其他平台(例如Android
和iOS
. 我的 Unity 脚本中有一些方法被调用Android
,iOS
例如
public void ApplyEffect()
{
//Some code
}
此方法仅在 Unity 代码中被调用Android
或不被引用。iOS
结果,我看到了警告
Method 'ApplyEffect' is never used
但更重要的是,这些方法会让其他人感到困惑,因为它给人的印象是这些方法没有被使用。
我想有一种方法来表明正在使用这些方法,以免有人错误地删除它们。我觉得有一些表示也会使代码更具可读性。但是我该怎么做呢?
Jetbrains Rider 有一个UsedImplicitly
看起来很完美的注释,但我认为它可能不适用于其他编辑器。评论是一种选择,但这似乎不是一个好的解决方案。
有什么建议么?谢谢!
解决方案
我认为此警告仅由 ReSharper 本身引发,而不是本机 C# 警告。
正如您已经提到的,您可以使用[UsedImplicitly]
ReSharper 中的属性来消除警告,但正如您所指出的,不使用 ReSharper 或 Jetbrains 的人不会知道该属性的用途,但也不会首先收到警告。所以它仍然需要一个注释来解释该属性的作用以及它为什么存在(此时你可以有一个注释来解释它首先在那里使用)
另一种选择(仅适用于 JetBrains/ReSharper 用户)是关闭solution-wide analysis
应该阻止 ReSharper 检查该警告的选项,但这可能不是一个令人满意的解决方案,因为您可能正在使用它,因为您需要该功能。
一个更有针对性的解决方案是放在// ReSharper disable once UnusedMember.Global
方法的最开始ApplyEffect
,这应该禁用该方法的警告,同时对于非 ReSharper 用户来说仍然很清楚。
简而言之,由于它是一个 ReSharper/Jetbrains 警告,因此需要 ReSharper/Jetbrains 解决方案,唯一的“全局”解决方案将评论该方法的实际使用情况以及调用位置。(我个人认为这是要走的路)
推荐阅读
- c# - unity忽略条件中的部分代码
- docker - 未调用 Docker 容器内的 Web Api Endpoint
- laravel - Laravel 关系“有时”返回 null
- c - GSL 实际上是在使用 Atlas 吗?
- javascript - FunctionConstructor.prototype
- android - 更改 Switch 的背景颜色
- lightningchart - 创建chartXY对象后如何设置主题?
- javascript - 为什么这个基于承诺的代码返回未定义?
- java - 如何打印出正确的输出?
- android - 分配 OutOfMemoryError 失败