2011-04-27 6 views

답변

3

각 개체는 여전히 고유합니다. Object로부터 상속받습니다. XAML

예 :

<Grid Name="BaseGrid"> 
    <Button Content="Button" Height="23" HorizontalAlignment="Left" Margin="73,34,0,0" VerticalAlignment="Top" Width="75" /> 
    <Button Content="Button" Height="23" HorizontalAlignment="Left" Margin="73,101,0,0" VerticalAlignment="Top" Width="75" /> 
</Grid> 

코드 시각화의 해시 코드 :

foreach (UIElement child in BaseGrid.Children) 
{ 
    MessageBox.Show(child.GetHashCode().ToString()); 
} 

은 또한 다음과 같은 코드를 사용할 수있는 또 다른 객체와 비교할 수있는 해시 코드를 확인하려면 "다른 컨트롤과의 관계에서 그 정체성을 결정하는 것은 무엇이냐?"라는 질문에 다시 돌아온다. 모든 객체는 힙에있는 메모리 영역에 대한 포인터이다. XAML은 컴파일러에게 개체를로드하는 방법을 알려줍니다. 로드 된 후 메모리 주소로 참조됩니다. 그래서 모든 컨트롤이 맨 위 요소에서 시작하여 관심있는 컨트롤이 포함 된 특정 아이를 점점 식별 할 수

이 응답을 확인하시기 바랍니다 - -

3

기술적으로는 그렇습니다. 컨트롤의 각 인스턴스는 클래스의 고유 한 인스턴스입니다. 참조를 통해 컨트롤에 액세스 할 수 있습니다. 트릭은 이름이나 ID가 없으므로 어떤 고유 한 컨트롤이 관심있는 컨트롤인지 식별하는 것입니다.

ID/이름에 관계없이 컨트롤을 고유하게 식별하는 컨트롤에 대한 참조이며 컨트롤 간의 관계를 정의하는 컨트롤 계층 구조에서 컨트롤의 위치입니다. 예를 들어, 루트 컨트롤에는 0 개 이상의 자식 컨트롤이있을 수 있으며 각 컨트롤에는 자체 컨트롤이있을 수 있습니다. 이름은 계층 구조에서 컨트롤을 찾고 컨트롤의 특정 인스턴스와 상호 작용할 수있는 의미있는 식별자를 제공하기위한 편리한 방법입니다.

관련 문제