Windows Forms ListBoxCollection을 면밀히 조사하고 있는데, 분석 중에 메서드를 추가하면 기본 개체에 Equals 메서드가 "추가"라는 메서드가 있다는 것을 알았습니다. 왜이 메서드에서이 작업을 수행합니까?왜 listbox1.Items.Add는 내 개체의 Equals 메서드를 사용합니까?
나는 "스택 전화"나는이 대답 찾기가 사용해 본 적이 :
우리는 전화 : System.Windows.Forms.ListBox.ObjectCollection.Add (대상 항목)
을 그리고 것 System.Windows.Forms.ListBox.ObjectCollection.AddInternal (대상 항목)
그것은 호출합니다 : : 전화 System.Windows.Forms.ListBox.NativeAdd (대상 항목)
하고 WI 호출 할 : System.Windows.Forms.ListControl.GetItemText (개체 항목)
및 호출 할 : System.Windows.Forms.Formatter.FormatObject (개체 값, System.Type targetType, System.ComponentModel.TypeConverter sourceConverter, System.ComponentModel.TypeConverter targetConverter, 문자열은 formatString, System.IFormatProvider formatInfo는)
을 dataSourceNullValue 객체, formattedNullValue 객체 그것은 호출합니다 : System.Windows.Forms.Formatter.IsNullData (개체 값을
) dataSourceNullValue 객체 마지막으로 호출합니다 : object.Equals (objA, objB)
이 방법은 내 평등 방법도 실행 확인: 내 보내기됩니까
WindowsFormsApplication1.Student.Equals (개체 OBJ)
와 마지막 매개 변수는 Equals 메서드 (OBJ와 같은) DBNULL 개체입니다! DBNULL이란 무엇입니까?
Winforms에는 ListBoxCollection 클래스가 없습니다. ListBox.ObjectCollection.Add()는 다음 후보가 될 수 있지만 목록이 정렬되지 않으면 해당 Add() 메서드는 Equals()를 호출하지 않습니다. 호출 스택을보고 거기에 도달했는지 확인하십시오. –