次の方法で共有


CA1515: Consider making public types internal (public 型を internal にすることを検討する)

プロパティ
ルール ID CA1515
タイトル Consider making public types internal (public 型を internal にすることを検討する)
カテゴリ 保守容易性
修正が中断ありか中断なしか なし
.NET 9 では既定で有効 いいえ

原因

実行可能アセンブリ内の型が public として宣言されています。

規則の説明

クラス ライブラリとは異なり、通常、アプリケーションの API はパブリックに参照されないため、型を internal としてマークできます。

internal 型には、public 以外の API を対象とするさまざまなコード アナライザーから得られるメリットがあります。

違反の修正方法

型を internal としてマークします。

次のコード スニペットは、CA1515 の違反を示しています。

// Inside a project with <OutputKind>Exe</OutputKind>.
public class Program
{
    public static void Main(string[] args)
    {
    }
}
' Inside a project with <OutputKind>Exe</OutputKind>.
Public Class Program
    Public Shared Sub Main(args As string())
    End Sub
End Class

次のコード スニペットでは違反を修正しています。

// Inside a project with <OutputKind>Exe</OutputKind>.
internal class Program
{
    public static void Main(string[] args)
    {
    }
}
' Inside a project with <OutputKind>Exe</OutputKind>.
Friend Class Program
    Public Shared Sub Main(args As string())
    End Sub
End Class

(プロジェクトの出力の種類の詳細については、 .NET プロジェクト デザイナーの「出力の種類」セクションを参照してください。

どのようなときに警告を抑制するか

コードの保守性が懸念されない場合は、この規則違反を抑制しても問題ありません。

警告を抑制する

単一の違反を抑制するだけの場合は、ソース ファイルにプリプロセッサ ディレクティブを追加して無効にしてから、規則をもう一度有効にします。

#pragma warning disable CA1515
// The code that's violating the rule is on this line.
#pragma warning restore CA1515

ファイル、フォルダー、またはプロジェクトの規則を無効にするには、noneでその重要度を に設定します。

[*.{cs,vb}]
dotnet_diagnostic.CA1515.severity = none

詳細については、「コード分析の警告を抑制する方法」を参照してください。

分析するコードを構成する

この規則を適用する 出力アセンブリの種類 を構成できます。 たとえば、コンソール アプリケーションまたは動的にリンクされるライブラリ (つまり、UI アプリではない) を生成するコードにのみこの規則を適用するには、プロジェクトの .editorconfig ファイルに次のキーと値のペアを追加します。

dotnet_code_quality.CA1515.output_kind = ConsoleApplication, DynamicallyLinkedLibrary

詳細については、「 output_kind」を参照してください。