Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
| Свойство | Значение |
|---|---|
| Идентификатор правила | CA1715 |
| Заголовок | Идентификаторы должны иметь правильные префиксы |
| Категория | Именование |
| Исправление является критическим или не критическим | Аварийное — при срабатывании в интерфейсах. Неразрывающий - в случае параметров генерического типа. |
| Включен по умолчанию в .NET 10 | Нет |
| Применимые языки | C# и Visual Basic |
Причина
Имя интерфейса не начинается с прописной буквы "I".
–или–
Имя параметра универсального типа в типе или методе не начинается с прописной буквы "Т".
По умолчанию это правило проверяет только видимые извне интерфейсы, типы и методы, но это поведение можно настроить.
Описание правила
По соглашению имена некоторых программных элементов начинаются с определенного префикса.
Имена интерфейсов должны начинаться с прописной буквы "I", за которой следует другая прописная буква. Это правило сообщает о нарушениях для таких имен интерфейсов, как MyInterface и IsolatedInterface.
Имена параметров универсального типа должны начинаться с прописной буквы "T", за которой при необходимости может следовать еще одна прописная буква. Это правило сообщает о случаях нарушения для таких наименований параметров универсального типа, как "V" и "Type".
Соглашения об именовании обеспечивают единство вида библиотек, предназначенных для среды CLR. Это сокращает время, необходимое для изучения новых библиотек программного обеспечения, и позволяет клиентам увериться в том, что разработчик библиотеки имеет опыт разработки управляемого кода.
Настройка кода для анализа
Используйте следующие параметры, чтобы указать части базы кода, к которым будет применяться это правило.
Эти параметры можно настроить только для этого правила, для всех правил, к которым они применяются, или для всех правил в этой категории (именования), к которым они применяются. Дополнительные сведения см. в статье Параметры конфигурации правила качества кода.
Включите конкретные поверхности API
Вы можете настроить компоненты базы кода для выполнения этого правила на основе их специальных возможностей, задав параметр api_surface. Например, чтобы указать, что правило должно выполняться только для непубличной поверхности API, добавьте следующую пару "ключ-значение" в файл .editorconfig в ваш проект:
dotnet_code_quality.CAXXXX.api_surface = private, internal
Примечание.
Замените XXXX частью CAXXXX идентификатором применимого правила.
Параметры типа с одним символом
Вы можете настроить, следует ли исключать из этого правила параметры типа из одного символа или нет. Например, чтобы указать, что это правило не должно анализировать параметры типа из одного символа, добавьте одну из следующих пар "ключ-значение" в файл editorconfig в проекте:
# Package version 2.9.0 and later
dotnet_code_quality.CA1715.exclude_single_letter_type_parameters = true
# Package version 2.6.3 and earlier
dotnet_code_quality.CA2007.allow_single_letter_type_parameters = true
Примечание.
Это правило никогда не срабатывает для параметра типа с именем T, например Collection<T>.
Устранение нарушений
Переименуйте идентификатор таким образом, чтобы у него был правильный префикс.
Когда лучше отключить предупреждения
Для этого правила отключать вывод предупреждений не следует.
Пример именования интерфейса
В следующем фрагменте кода показан неверно именованный интерфейс:
' Violates this rule
Public Interface Book
ReadOnly Property Title() As String
Sub Read()
End Interface
// Violation.
public interface Book
{
string Title
{
get;
}
void Read();
}
Следующий фрагмент кода устраняет предыдущее нарушение, добавляя к интерфейсу префикс "I":
// Fixes the violation by prefixing the interface with 'I'.
public interface IBook
{
string Title
{
get;
}
void Read();
}
' Fixes the violation by prefixing the interface with 'I'
Public Interface IBook
ReadOnly Property Title() As String
Sub Read()
End Interface
Пример именования параметров типа
В следующем фрагменте кода показан неверно именованный параметр универсального типа:
' Violates this rule
Public Class Collection(Of Item)
End Class
// Violation.
public class Collection<Item>
{
}
Следующий фрагмент кода устраняет предыдущее нарушение, добавляя к параметру универсального типа префикс "T":
// Fixes the violation by prefixing the generic type parameter with 'T'.
public class Collection<TItem>
{
}
' Fixes the violation by prefixing the generic type parameter with 'T'
Public Class Collection(Of TItem)
End Class