質問: 参考書を読んでいる途中で分からないところがあったので質問させていただきます。 下記画像が該当コードになります。 goButton_Click クラス内の Search myData =(SearchData)siteComboBox.SelectedItem の部分が謎です。 このプログラムがロードされた際にコンボボックスに4つのオブジェクトが追加されています。 例えばコンボボックスの1つめが選択された状態でボタンがクリックされると Search myData =(SearchData)siteComboBox.SelectedItemはどのように解釈できるのですか? 私にはインスタンス化しているように見えるのですが Search myData =(SearchData) new SearchData("http;//www.google以下略")ということでしょうか。しかしインスタンス化する際の右辺の(SearchData)が謎です... 分かる方いましたら教えてください。宜しくお願い致します。 ![イメージ説明](https://teratail.storage.googleapis.com/uploads/contributed_images/522d5056c38d65eef7affec7f27f2d1e.jpeg) ![イメージ説明](https://teratail.storage.googleapis.com/uploads/contributed_images/f2796c408fcd7b14d674d0248d3bdc09.jpeg)
回答: `(SearchData)siteComboBox.SelectedItem` このような記述は、型を変換するということです。 ComboBox.SelectedItemプロパティ.aspx) こちらを見て頂ければ分かりますが、SelectedItemプロパティはObject型となります。 ComboBoxに追加する時、SearchDataクラスのインスタンスを作成し、そのインスタンスを追加しています。 (siteComboBox.Item.Add(~)の部分) SelectedItemプロパティでは、この追加されたインスタンスから、選択されているインスタンスを返します。 ただ、ComboBox側ではどのような物がItemとして追加されるか分かりませんので、どのような物でも許容できるようにObject型で処理するようになっています。 この為、受け取る際に利用する側がキャストしてやる必要があります。 (Search myData =(SearchData)siteComboBox.SelectedItemの部分)