Поделиться через


CA1515: рекомендуется сделать общедоступные типы внутренними

Свойство Значение
Идентификатор правила CA1515
Заголовок Рассмотрите возможность создания внутренних типов общедоступных типов
Категория Ремонтопригодность
Исправление является критическим или не критическим Не критическое
Включен по умолчанию в .NET 9 No

Причина

Тип внутри исполняемой сборки объявляется как общедоступный.

Описание правила

В отличие от библиотеки классов, API приложения обычно не ссылается публично, поэтому типы можно пометить internal.

Внутренние типы, в свою очередь, могут воспользоваться различными анализаторами кода, предназначенными для не общедоступных API.

Устранение нарушений

Пометьте тип как internal.

Пример

В следующем фрагменте кода показано нарушение CA1515:

// Inside a project with <OutputKind>Exe</OutputKind>
public class Program
{
    public static void Main(string[] args)
    {
    }
}
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)
    {
    }
}
Friend Class Program
    Public Shared Sub Main(args As string())
    End Sub
End Class

Когда лучше отключить предупреждения

Нарушение этого правила можно безопасно скрыть, если вы не беспокоитесь об удобстве обслуживания кода.

Отключение предупреждений

Если вы просто хотите отключить одно нарушение, добавьте директивы препроцессора в исходный файл, чтобы отключить и повторно включить правило.

#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

Дополнительные сведения см. в разделе Практическое руководство. Скрытие предупреждений анализа кода.