Что бы получить доступ из внешнего класса к члену вложенного класса или наоборот, из вложенного класса к члену внешнего класса, нужно объявить переменную этого типа и через нее производить доступ.
Main.cs
usingSystem;//внешний классclassOne {-
publicintexternalValue; -
publicOne(intarg) { -
externalValue = arg; -
} -
publicintSumExternal(Two obj) { -
returnexternalValue + obj.internalValue; -
} -
//вложенный класс -
publicclassTwo { -
publicintinternalValue; -
publicTwo(intarg) { -
internalValue = arg; -
} -
publicintSumInteranl(One obj) { -
returninternalValue + obj.externalValue; -
} -
} }classProgram {-
publicstaticintMain() { -
One O =newOne(10); -
//обратите ВНИМАНИЕ, как создается объект вложенного класса -
One.Two T =newOne.Two(20); -
Console.WriteLine(O.SumExternal(T)); -
Console.WriteLine(T.SumInteranl(O)); -
Console.ReadKey(); -
return0; -
} }
usingSystem;//внешний классclassOne {-
publicintexternalValue; -
publicOne(intarg) { -
externalValue = arg; -
} -
publicintSumExternal(Two obj) { -
returnexternalValue + obj.internalValue; -
} -
//вложенный класс -
publicclassTwo { -
publicintinternalValue; -
publicTwo(intarg) { -
internalValue = arg; -
} -
publicintSumInteranl(One obj) { -
returninternalValue + obj.externalValue; -
} -
} }classProgram {-
publicstaticintMain() { -
One O =newOne(10); -
//обратите ВНИМАНИЕ, как создается объект вложенного класса -
One.Two T =newOne.Two(20); -
Console.WriteLine(O.SumExternal(T)); -
Console.WriteLine(T.SumInteranl(O)); -
Console.ReadKey(); -
return0; -
} }
30
30
30