Недоступна из-за своего уровня защиты
Привет всем,
Я пытаюсь получить список, параметры которого являются именами моделей физических дисков. Мне удалось получить информацию о физическом диске в ArrayList, и теперь я пытаюсь получить список для отображения имен моделей. Я пытаюсь сделать это с помощью этого кода.
foreach (HardDrive d in Reporting.hdCollection) { DriveBox.Items.Add(d.model); }
Эта d.модель дает мне ошибку, что она недоступна из-за ее уровня защиты, однако она объявлена в Reporting.cs общедоступным способом
class Reporting { public static ArrayList hdCollection = new ArrayList();
Я не знаю, почему это происходит, но был бы очень признателен за любую помощь, которую кто-либо может оказать. Потому что у меня действительно нет идей.
Ben Marks
это класс просто объявили, как
классный репортаж
тогда разве он не является публичным по умолчанию? Я все равно изменил его на публичный, и это не имело никакого значения.
Причина, по которой я использовал arraylist вместо прямого списка, заключается в том, что хранится другая информация, такая как серийные номера и другая информация.
Sergey Alexandrovich Kryukov
Если он говорит "недоступно из-за его уровня защиты", он недоступен, точка. Вы не предоставляете соответствующий пример кода.
Убедитесь, что вы понимаете модификаторы доступа. "Публично" - это не информативно. И она не обязательно должна быть публичной, во многих случаях достаточно "внутренней".
--СА
Ben Marks
Я принимаю вашу точку зрения SA, однако если вы видите для каждого из них, которые я предоставил, он может видеть Reporting.hdcollection, который является arraylist, содержащим поле модели.
Только это поле недоступно, означает ли тот факт, что оно может получить доступ к Reporting.hdcollection, что оно является общедоступным?