2013-03-14 4 views
-4

그래, 기본적으로 두 개의 클래스가있는 간단한 프로그램 (birdegg)이 있습니다. Program 클래스에서 나는 이 bird이고 listegg인데, 둘 다 클래스의 main 메소드보다 위에 선언되어 있습니다. bird 개체에는 layEgg이라는 메서드가 있으며 이 egg 인 새 egg 개체를 추가하려고합니다. 하지만 부모 클래스에서 list에 액세스하는 방법을 잘 모르겠습니다.C# : 다른 클래스에서 '부모'클래스의 정적 변수에 액세스하는 방법

이것도 가능합니까?

+4

우리가 코드를 가질 수 샘플 그래서 우리는 컨텍스트를 완전히 이해할 수 있습니까? –

+0

부모 클래스의 개요를 제공해 주시겠습니까? 최소한 목록이 선언 된 장소. – Gorpik

+0

목록이 공개되어 있습니까? ie, 공개 목록 알; ? – Inisheer

답변

0

정확하게 이해하면 부모 클래스은 실제로 부모 클래스가 아닙니다. 즉, 클래스 bird이 해당 부모 클래스에서 상속된다는 의미는 아닙니다. 당신은 안에 그 클래스가 선언 된 것을 의미합니다. 이와 같은 :

class Program 
{ 
    private class egg { } 

    private static List<egg> listOfEggs; 

    private class bird 
    { 
    public void layEgg() 
    { 
     // How to access listOfEggs from here? 
    } 
    } 

    private static List<bird> listOfBirds; 

    static void Main(string[] args) 
    { 
    // Initialise the lists, then: 
    listOfBirds[0].layEgg(); 
    } 
} 

그렇다면, 대답은 정말 간단하다

private class bird 
    { 
    public void layEgg() 
    { 
     listOfEggs.Add(new egg()); // No problem 
    } 
    } 
+0

예, 사용중인 기술 용어가 혼란 스럽습니다. 나는 안에 선언했다. 이제 코드를 사용해보십시오. 건배 –

+2

아, 지금 내가 잘못하고있는 일과 당혹 스럽네요 : -/나는 프로그램 클래스 밖에서 새/난 클래스를 정의하고있었습니다. <부끄러움을 당함> –

0

나는 할 수있다 : 모든 private 경우에도 클래스 bird 내부 완벽하게 볼 수 있기 때문에 listOfBirds가 직접 액세스 할 수 있습니다 잘못되었지만 당신의 접근 방식이 잘못된 것처럼 보입니다.

내 말은
namespace BirdsAndEggs 
{ 
    public class Bird 
    { 
     public string Name { get; set; } 
     public List<Egg> Eggs { get; set; } 
    } 
    public class Egg 
    { 
     public string Size { get; set; } 
    } 

    public class Main 
    { 
     List<Bird> TheBirds = new List<Bird>(); 

     void main() 
     { 
      TheBirds.Add(new Bird() 
      { 
       Name = "Bird 1" 
      }); 
      TheBirds.Add(new Bird() 
      { 
       Name = "Bird 2" 
      }); 
      TheBirds.Add(new Bird() 
      { 
       Name = "Bird 3" 
      }); 

      layEgg(0, "Large"); 
      layEgg(1, "Medium"); 
      layEgg(2, "Small"); 
     } 

     void layEgg(int i, string size) 
     { 
      TheBirds[i].Eggs.Add(new Egg() { Size = size }); 
     } 
    } 
} 

, 이것은 당신이 원하는에서 정말 무작위 추측, 그리고 난 ... 당신이 C 번호와 얼마나 잘 알고 모르는 :이 시도/

관련 문제