Обоснование спецификации 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. Очевидно, полезно иметь частный установщик и публичный получатель. По общему признанию довольно редко иметь это наоборот...