Что бы получить доступ из внешнего класса к члену вложенного класса или наоборот, из вложенного класса к члену внешнего класса, нужно объявить переменную этого типа и через нее производить доступ.
Main.cs
using
System;
//внешний класс
class
One {
-
public
int
externalValue;
-
public
One(
int
arg) {
-
externalValue = arg;
-
}
-
public
int
SumExternal(Two obj) {
-
return
externalValue + obj.internalValue;
-
}
-
//вложенный класс
-
public
class
Two {
-
public
int
internalValue;
-
public
Two(
int
arg) {
-
internalValue = arg;
-
}
-
public
int
SumInteranl(One obj) {
-
return
internalValue + obj.externalValue;
-
}
-
}
}
class
Program {
-
public
static
int
Main() {
-
One O =
new
One(10);
-
//обратите ВНИМАНИЕ, как создается объект вложенного класса
-
One.Two T =
new
One.Two(20);
-
Console.WriteLine(O.SumExternal(T));
-
Console.WriteLine(T.SumInteranl(O));
-
Console.ReadKey();
-
return
0;
-
}
}
using
System;
//внешний класс
class
One {
-
public
int
externalValue;
-
public
One(
int
arg) {
-
externalValue = arg;
-
}
-
public
int
SumExternal(Two obj) {
-
return
externalValue + obj.internalValue;
-
}
-
//вложенный класс
-
public
class
Two {
-
public
int
internalValue;
-
public
Two(
int
arg) {
-
internalValue = arg;
-
}
-
public
int
SumInteranl(One obj) {
-
return
internalValue + obj.externalValue;
-
}
-
}
}
class
Program {
-
public
static
int
Main() {
-
One O =
new
One(10);
-
//обратите ВНИМАНИЕ, как создается объект вложенного класса
-
One.Two T =
new
One.Two(20);
-
Console.WriteLine(O.SumExternal(T));
-
Console.WriteLine(T.SumInteranl(O));
-
Console.ReadKey();
-
return
0;
-
}
}
30
30
30