Я тщательно проверяю метод добавления ListBoxCollection в Windows Forms,
во время анализа я обнаружил, что метод «add» вызывает метод Equals в базовом объекте
почему этот метод делает это действие?
Я использовал «стек вызовов» и нашел ответ:
Мы вызываем: System.Windows.Forms.ListBox.ObjectCollection.Add (item item)
и будет вызываться: System.Windows.Forms.ListBox.ObjectCollection.AddInternal (item item)
и вызовет: System.Windows.Forms.ListBox.NativeAdd (item item)
и будет вызываться: System.Windows.Forms.ListControl.GetItemText (item item)
, и он будет вызывать: System.Windows.Forms.Formatter.FormatObject (значение объекта, System.Type targetType, System.ComponentModel.TypeConverter sourceConverter, System.ComponentModel.TypeConverter targetConverter, строковый формат string, форматирование объекта System.IFormatVid для объекта , объект dataSourceNullValue)
и будет вызываться: System.Windows.Forms.Formatter.IsNullData (значение объекта, объект dataSourceNullValue)
и, наконец, вызовет: object.Equals (объект objA, объект objB)
который этот метод делает мой метод равным тоже Выполнить:
WindowsFormsApplication1.Student.Equals (объект obj)
, а последний параметр, который будет отправлен в метод My Equals (как obj), является объектом DBNULL!
что такое DBNULL?