※ ChatGPTを利用し、要約された質問です(原文:Equalsはどこから呼出してるのでしょうか?)
Equalsはどこから呼出してるのでしょうか?
このQ&Aのポイント
wpfの次のpublic override int GetHashCode()とpublic override bool Equals(object obj)とpublic override string ToString()にブレークポイントを設定し、起動時にEqualsで中断、コンボボックスをクリックするとToStringやGetHashCodeで中断します。
これらのメソッドはMainWindow.xaml.csのclassBクラスでオーバーライドされており、カスタムコンボボックスの動作に関連しています。
具体的な呼び出し元のコードは示されていませんが、classAクラスのcomblistプロパティで設定されたclassBオブジェクトのリストがコンボボックスの項目ソースとして使用されている可能性があります。
wpfの次のpublic override int GetHashCode()とpublic override bool Equals(object obj)とpublic override string ToString()にブレークポイントを設定し「開始」をすると起動時にEqualsで中断、コンボボックスをクリックするとToStringやGetHashCodeで中断しますが、これらの呼び出し元はどこなのでしょうか?
何卒、ご教授よろしくお願いします。
mainwindow.xaml
<Grid>
<ComboBox x:Name="comboBox" HorizontalAlignment="Left" Margin="200,138,0,0" VerticalAlignment="Top" Width="120" ItemsSource="{x:Static local:classA.comblist}"/>
</Grid>
mainwindow.xaml.cs
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
}
class classA
{
public static classB[] comblist
{
get
{
classB[] List = new classB[3];
classB a1 = new classB();
a1.listb = "AAA";
List[0] = a1;
classB a2 = new classB();
a2.listb = "BBB";
List[1] = a2;
classB a3 = new classB();
a3.listb = "CCC";
List[2] = a3;
return List;
}
}
}
class classB
{
private string _listb;
public string listb
{
get
{
return _listb;
}
set
{
_listb = value;
}
}
public override int GetHashCode()
{
return 1;
}
public override bool Equals(object obj)
{
return false;
}
public override string ToString()
{
return listb;
}
}
※長々と書き込みすいません、コード自体に意味はございません
お礼
そうですね、デバッガの使い方をきちんと覚えることから出直します。 ご指導ありがとうございました。