Обоснование спецификации CLS: доступность свойства и его методов доступа должны быть идентичны

Просто пробегал набор правил инструмента анализа кода Parasoft.

public int testProperty // violation
{
  private get // not matching property accessibility
  { return _testValue; }
  set
  { _testValue = value; }
}

Исправление, чтобы они оба совпадали. Причина указывает на раздел свойств на этой странице MSDN на CLS. Однако обоснование этого не упоминается на странице.

Я часто использую автоматические свойства формы public int MyProp { get; private set;}

Это нарушение CLS? RFC

1 ответ

Решение

Если вы посмотрите на более свежую версию этой страницы (или даже версию.NET 2.0), у нее нет этого правила. В основном это произошло между v1.1 и v2.0... в то же время, когда C# начал разрешать их указывать по-разному:)

Это было глупое правило и глупое отсутствие возможностей в C# 1, IMO. Очевидно, полезно иметь частный установщик и публичный получатель. По общему признанию довольно редко иметь это наоборот...

Другие вопросы по тегам