당신이 만약 .. 이런 식으로 일을함으로써
public InnerClass InnerClass{
get{ return innerClass; }
set{ innerClass.CopyFrom(value); /* Pseudo method call */ }
}
, 당신이 OuterClass을하지 않는 인스턴스를 명시 적으로 조작에서 외부 코드를 방지 : 외부 클래스를 "소유"내부 클래스,이 경우에 필요할 수 있습니다 내부 클래스 자체를 노출시키지 않고 내부 클래스 멤버에 액세스하는 것을 의미하므로 다음 코드를 사용할 수 있습니다. this.innerClass
만 노출하려는 경우 InnerClass
필드를 노출하는 방식에 차이가 없습니다.
class InnerClass
{
private int _a;
public int a
{
get
{
return _a;
}
set
{
_a = value;
}
}
private int _b;
public int b
{
get
{
return _b;
}
set
{
_b = value;
}
}
}
class OuterClass
{
private InnerClass _innerClass;
public InnerClass innerClass
{
get
{
return _innerClass;
}
set
{
_innerClass = value;
}
}
}
이 두 정의는 암시 적으로 동일합니다으로이 암시 적으로 동일
class InnerClass
{
public int a{ get; set; }
public int b{ get; set; }
}
class OuterClass
{
public InnerClass innerClass{ get; set; }
}
:
class OuterClass
{
private InnerClass innerClass
public int M_A
{
get
{
if (this.innerClass != null)
{
return this.innerClass.M_A;
}
else
{
throw new InvalidOperationException();
}
}
set
{
if (this.innerClass != null)
{
this.innerClass.M_A = value;
}
else
{
throw new InvalidOperationException();
}
}
}
}
"set"은 {m_a = value;} –
당신이 알고있는 담당자를 가지고 있어야합니다.) – annakata