Как мы знаем, когда R # находит тип или элемент, который не используется напрямую, он отключается. Это нормально, что когда мы пишем новый класс, все поля изначально недоступны. Это связано с правилом UnusedMember.Global
. Кроме того, это не относится к нескольким именам ...
Если тип / member имеет имя из некоторого определенного набора, это правило не помечает его как недопустимое и каким-то образом решает, что оно действительно используется, даже если в классе нет методов, а сам класс нигде не используется (но это относится только к public
и internal
, private
работает как положено). Тип члена не имеет значения. Капитализация тоже не имеет значения.
Слова, которые я обнаружил, ведут себя так: Id
, Guid
, System
, Configuration
, Configurations
, Name
, Names
, Service
, Services
, var
и все ключевые слова, которые просто указывают на класс / структуру, если они написаны не так, как все строчные буквы (например, INT
, Object
, String
и т. Д.), И их формы во множественном числе (это могут быть строчные буквы, поэтому ints
)
Итак, давайте возьмем этот класс:
internal class ConfiguredService // Grayed out
{
internal string RemoteSystem { get; } // Grayed out
internal string LocalSystem { get; } // Grayed out
internal string Configuration { get; } // Not grayed
internal string ints { get; } // Not grayed
}
Для меня это не похоже на ошибку, это было бы замечено много лет назад, так как это вполне заметно и бесполезно для воспроизведения. Но я не могу найти источник, который объяснил бы, почему он разработан таким образом, и перечислил бы слова, которые принимают такое поведение.
Моя версия Visual Studio - Professional 2017 15.8.5, а R # - версия 2018.1.2