Я даже не совсем уверен, как сформулировать свой вопрос, поэтому я просто покажу пример. Я хочу эквивалент:Как я могу предоставить доступ к частным переменным другому классу, но не к программисту?
public class OuterClass
{
public InnerClass DoStuff(InnerClass this_class)
{
this_class.number = 5;
return this_class;
}
public class InnerClass
{
private int number = 0;
}
}
У меня есть внутренний класс, который программист может установить некоторые переменные и такие в, но он также имеет некоторые внутренние переменные, которые они никогда не должны трогать или нужно знать. Внешний класс работает с экземплярами внутреннего класса, и он должен знать об этих внутренних переменных. Я могу придумать еще несколько запутанных способов сделать то, что хочу, но мне любопытно, есть ли способ достичь сути того, что я получил на C#? Или это просто невозможно.
Редактирование: для практического примера того, для чего это необходимо, это общий протокол связи, который я использую (связь сокетов). Существует класс оболочки socket (OuterClass), и вы создаете класс Message (InnerClass), устанавливаете в нем несколько вещей и передаете его оболочке сокета, которая обрабатывает все внутренние элементы. Класс Message имеет некоторые внутренние данные, которые устанавливаются и работают с оболочкой, и я надеялся, что могу получить это в оригинальном классе, не имея другого внутреннего класса для его хранения.
Носите большую летучую мышь и угрожайте ударить любого, кто использует «внутренний» член. – jrummell
Но если серьезно, я думаю, вы можете решить это, введя один тип в другой. Можете ли вы дать реалистичный пример того, что вы пытаетесь сделать? – jrummell
@jrummell Я добавил небольшое объяснение – cost