В рекомендациях по проектированию, которые вы указали специально, указано, что они применяются только к статическим открытым и защищенным полям. Руководства по проектированию в основном сосредоточены на разработке общедоступных API; то, что вы делаете со своими личными членами, зависит от вас. Я не уверен, но я относительно уверен, что частные участники не учитываются, когда компилятор проверяет соответствие CLS, потому что только открытые / защищенные члены приходят туда играть (идея в том, что, если кто-то, кто использует язык, который не позволяет символу _ пытаться использовать вашу библиотеку? »Если участники являются личными, ответ« Нет, пользователю не нужно использовать эти члены ». Но если участники являются публичными, у вас проблемы. )
Тем не менее, я собираюсь добавить в эхо-камеру и указать, что что бы вы ни делали, важно быть последовательным. Мой работодатель требует, чтобы закрытые поля в C # и VB начинались с префикса _, и поскольку все мы следуем этому соглашению, легко использовать код, написанный кем-то другим.