2013-10-20 2 views
0

매개 변수의 이름이 외부 클래스의 필드 이름과 동일한 경우 내부 클래스의 외부 클래스 필드에 어떻게 액세스 할 수 있습니까? 예를 들어C#에서 같은 이름의 내부 클래스에서 외부 클래스의 필드에 액세스하는 방법? (중첩 클래스)

-

class OuterClass 
{ 
    static int Number; 

    class InnerClass 
    { 
     public InnerClass(int Number) 
     { 
      Number = Number; // This is not correct 
     } 
    } 
} 

그래서 나는 다음과 같은 시도 -

class OuterClass 
{ 
    static int Number; 

    class InnerClass 
    { 
     public InnerClass(int Number) 
     { 
      this.this.Number = Number; // Gives compiler error 
     } 
    } 
} 

나는 그것을 액세스 할 수있는 방법 도와주세요 ...

감사합니다. 이 static 때문에

답변

1

을 당신은 당신이의 라인에 뭔가를 할 수

class OuterClass 
{ 
    static int Number; 

    class InnerClass 
    { 
     public InnerClass(int Number) 
     { 
      OuterClass.Number = Number; 
     } 
    } 
} 
+0

이것은 '정적'클래스에서만 작동해야합니까, 아니면 뭔가 빠졌습니까? – Marco

+0

정적 인 경우에만, 다른 하나는 인스턴스에 대한 참조가 필요합니다. – Fredou

1

, 당신은 서면으로 액세스 할 수 있습니다 : OuterClass.Number = Number;

0

를 찾고 있습니다 :

Public InnerClass 
{ 
    private MainClass _mainclass; 

    public InnerClass(MainClass mainclass) 
    { 
     this._mainclass = mainclass; 
    } 


} 

이 방법을 사용하면 항상 부모 클래스에 대한 참조로 내부 클래스를 만들고 mainclass으로 호출 할 수 있습니다.