내 코드 (스 니펫 문제를 노출하는)입니다 :개인 교실 : "외부 교실"회원에 대한 액세스? 여기
public class A
{
class B
{
//private class
}
public int nb;
}
임 피곤하지만 나는 내 개인 수업에 "주의"를 액세스 할 수없는 이유는 무엇입니까?
내 코드 (스 니펫 문제를 노출하는)입니다 :개인 교실 : "외부 교실"회원에 대한 액세스? 여기
public class A
{
class B
{
//private class
}
public int nb;
}
임 피곤하지만 나는 내 개인 수업에 "주의"를 액세스 할 수없는 이유는 무엇입니까?
는 인스턴스 멤버 nb
에 액세스하기 위해 인스턴스가 필요합니다. 따라서 외부 클래스가 인스턴스화되지 않습니다.
더 나은 '내부'를 만들 수 있을까요? – abatishchev
@abatishchev, 내부를 어떻게 만드나요? 중첩 된 클래스? 왜? 이 클래스가 A의 외부에서 사용되도록 의도되지 않은 경우 어떻게해야합니까? 중첩 된 개인 클래스를 만드는 것이 합리적입니다. –
'public int nb' ->'int int nb' – abatishchev
자바에서는 가능하지만 C#에서는 가능하지 않습니다.
A
의 인스턴스를 B
으로 전달해야합니다. C#에서
public class A
{
class B
{
public B()
{
A a = new A();
int nb = a.nb;
}
}
public int nb;
}
에 '외부'클래스는 내부 클래스에 단지 '네임 스페이스'입니다 : 당신은 거 야
B
에
A
의 인스턴스를 전달해야
:
public class A
{
class B
{
private A _outerClass;
public B(A outerClass)
{
_outerClass = outerClass;
// Then you can access nb thus:
_outerClass.nb;
}
}
public int nb;
}
와 방법 NB에 액세스하려고? –
"개인 클래스"주석이 작성된 곳에서 nb에 액세스 할 수 없습니다 –
코드를 추가하십시오. 이 방법으로 우리는 어둠 속에서 총격을 가하고 있습니다. –