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


CA1710: идентификаторы должны иметь правильные суффиксы

TypeName

IdentifiersShouldHaveCorrectSuffix

CheckId

CA1710

Категория

Microsoft.Naming

Критическое изменение

Критическое изменение

Причина

Неправильный суффикс идентификатора.

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

По правилам имена типов, расширяющих определенные базовые типы или реализующих определенные интерфейсы, а также типов, являющихся производными от первых, имеют суффикс, связанный с базовым типом или интерфейсом.

Соглашения об именах обеспечивают единообразие библиотек, предназначенных для выполнения в среде CLR. Это позволяет сократить время обучения, необходимое для освоения новых библиотек программного обеспечения, и укрепить уверенность клиента в том, что библиотека была разработана опытным разработчиком управляемого кода.

В следующей таблице перечислены базовые типы и интерфейсы, которые имеют связанные суффиксы.

Базовый тип или интерфейс

Суффикс

System.Attribute

Атрибут

System.EventArgs

EventArgs

System.Exception

Исключение

System.Collections.ICollection

Collection

System.Collections.IDictionary

Dictionary

System.Collections.IEnumerable

Collection

System.Collections.Queue

Collection или Queue

System.Collections.Stack

Collection или Stack

System.Collections.Generic.ICollection<T>

Collection

System.Collections.Generic.IDictionary<TKey, TValue>

Dictionary

System.Data.DataSet

DataSet

System.Data.DataTable

Collection или DataTable

System.IO.Stream

Поток

System.Security.IPermission

Разрешение

System.Security.Policy.IMembershipCondition

Атрибут Condition

Делегат обработчика событий.

EventHandler

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

Имена типов, реализующих ICollection и представляющих собой коллекцию определенных элементов, оканчиваются словом «Collection». Например, коллекция объектов Queue будет иметь имя "QueueCollection". Суффикс "Collection" означает, что члены коллекции могут быть перечислены с помощью оператора foreach (For Each в Visual Basic).

Имена типов, реализующих IDictionary, оканчиваются словом "Dictionary", даже если тип также реализует IEnumerable или ICollection. Соглашения об именовании для суффиксов "Collection" и "Dictionary" позволяют пользователям различать два шаблона перечисления.

Типы с суффиксом «Collection» отвечают этому шаблону перечисления.

    foreach(SomeType x in SomeCollection) { }

Типы с суффиксом «Dictionary» отвечают этому шаблону перечисления.

    foreach(SomeType x in SomeDictionary.Values) { }

Объект DataSet состоит из коллекции объектов DataTable, которая содержит коллекцию объектов System.Data.DataColumn и System.Data.DataRow в числе прочих. Эти коллекции реализуют ICollection через базовый класс System.Data.InternalDataCollectionBase.

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

Переименуйте тип так, чтобы он имел правильный суффикс.

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

Можно без последствий отключить предупреждение об использовании суффикса "Collection", если тип представляет собой обобщенную структуру данных, которую можно расширить, или которая будет содержать необязательный набор различных элементов. В этом случае имя, являющееся описанием реализации, производительности или других характеристик структуры данных, может иметь смысл (например, BinaryTree). В случаях, когда тип представляет коллекцию определенного типа (например, StringCollection), не следует пропускать предупреждение из этого правила, поскольку суффикс указывает, что тип может быть перечислен с помощью оператора foreach.

Не отключайте предупреждение из этого правила для других суффиксов. Суффикс позволяет сделать понятным предназначение типа по его имени.

Связанные правила

CA1711: идентификаторы не должны иметь неверных суффиксов

См. также

Ссылки

Правила использования атрибутов

Основные понятия

События и делегаты