Для простоты предположим, что у меня есть два класса: класс под названием Car и класс коллекции под названием Tyres. Шины - это вложенный класс внутри класса Car. Я хочу, чтобы дать своим клиентам доступ к коллекции - то есть они должны быть в состоянии итерацию над ним:Вложенные классы Conundrum
foreach(var tire in car.tires) ...
и доступ к свойствам каждой шины. Но я не хочу давать им доступ к методам в шинах. Я хочу, чтобы весь доступ к такому поведению, чтобы прийти через класс автомобиля:
car.FillTires();
Сценарий 1: Шины класса общедоступен методами частного: класс автомобиля не может получить доступ к методам шин.
Сценарий 2: Класс шин является приватным с общедоступными методами: я не могу предоставить коллекцию своим клиентам.
Внутренний язык не работает для меня, поскольку я не хочу предоставлять другим классам доступ к сборке.
Хороший ответ, однако сам класс должен быть внутренним/частным. –
Это не проблема для его предложения.Совершенно очевидно публично выставлять экземпляр частного класса, если вы делаете это только через открытый интерфейс. – Joren
Я не сказал, что это проблема, я имел в виду, что она нуждается в разъяснении в ответе. –