私は C# プロジェクトで ReSharper を使用していますが、一般的に気に入っています。ただし、特定のリファクタリング アクションを実行すると、コードに注釈が追加され続けます。
たとえば[NotNull]
、「Check parameter for null」コンテキスト アクションを使用すると、次のように追加されます。
// Before context action
public void Foo(object input)
{
}
// After context action
public void Foo([NotNull] object input)
{
if (input == null)
{
throw new ArgumentNullException("input");
}
}
using JetBrains.Annotations
さらに、属性が定義されている JetBrains アセンブリを参照していなくても、ReSharper はファイルに追加します。
コンテキスト アクションは非常に便利なので引き続き使用したいと思いますが、コードに外部注釈を導入することはできません。ReSharper は、デフォルトのアノテーション名前空間を変更し、アノテーション属性のソース コードをプロジェクトにコピーするオプションを提供しますが、それもこのプロジェクトのオプションではありません。
ReSharper に注釈の追加を完全に停止するように指示する方法はありますか? コード注釈属性を持つ名前空間として JetBrains.Annotations のチェックを外してオプションを試してみましたが、最初に注釈が生成されるかどうかには影響がないようです。
更新:実際には JetBrains.Annotations.dll を参照していませんでしたが、同じ JetBrains.Annotations 名前空間で同じ注釈属性を再実装した別の DLL を参照していました。その DLL 参照を削除すると、ReSharper が注釈を追加できなくなります。これをオフにするオプションがまだあればいいのですが、回避策はこの状況に適しています。