2012-05-02 3 views
1

이의 우리가이 개 클래스를 가지고 있다고 가정 해 봅시다 메소드의 인수를 통과하지 않고 어머니의 객체 필드를 사용하는 것입니다 : 나는 오브젝트 1의 방법 (객체 2에서) X를 사용하려면는 수는

public class object1 
{ 
string hehe = "xd"; 
void function() 
    { 
    if (x != 5) {} // here! 
    } 
} 

public class object2 
{ 
int x; 
int y; 
object1 z; 
} 

을하는 object2에 저장됩니다. 그게 가능하니? 나도 알다시피, 나는 메소드의 인수를 가진 데이터를 전달할 수 있지만 어떻게 든 이것을 피할 수 있는지 궁금해하고있다.

+1

'어머니의 개체'란 무엇입니까? – Oded

+0

기본 객체를 말하고 싶지 않았기 때문에 내가 어떻게 호출했는지; P – Patryk

+1

'mother 객체'는 컨테이너 (object2)이고 '자식 객체'는 containee 또는 object1이라고 생각합니다. –

답변

2

다른 클래스 내의 속성에 액세스하려면 객체의 인스턴스를 전달하거나 값 자체를 전달해야한다. . 또는 속성이 정적 인 경우 클래스 정의에서 액세스 할 수 있습니다. 또한 필드, 속성 및 메서드에 대한 액세스 한정자를 명시 적으로 지정하여 더 "가시적"으로 간주하는 것이 좋습니다.

public class ClassOne 
{ 
    public static int MyStaticInteger { get { return 1; } } 

    public int x { get; set; } 
    public int y { get; set; } 
} 

public class ClassTwo 
{ 
    public const string hehe = "xd"; 

    public void doSomething(ClassOne myOtherClass) 
    { 
     if (myOtherClass.x != 5) 
     { 

     } 

     if (ClassOne.MyStaticInteger != 5) 
     { 

     } 
    } 
} 
+0

도움 주셔서 감사합니다 :) – Patryk

관련 문제