Единственная известная мне функциональная причина - неявная реализация интерфейсов. Все методы интерфейса должны быть помечены public
, чтобы соответствовать интерфейсу. Это верно, даже если тип или интерфейс не являются публичными.
За исключением этой ограниченной ситуации, мне очень не нравится практика. Это затрудняет поиск в области общего доступа вашего приложения. Вместо этого вы должны сделать более расширенный поиск.
Кроме того, меня беспокоит, возможно, немного иррационально, что участники помечаются как публичные, хотя на самом деле это не так.