1

So , I can't understand this:

  • Let's say I have a class called : Bob and a variable called name with the type Bob.

And I do something like this:

foreach(ListViewItem item in listView1.Items)
{
    if((Bob)item.Tag == name)
       { //code }

}

What this actually does? it compares the item with the type of the class if all the objects from the constructor are the same with the variable of that class?

Thanks

4

2 に答える 2

0

ListViewItems を作成して ListView に追加する場合、その "Tag" プロパティを設定するオプションがあります。これは Object 型であり、任意のオブジェクトを処理できます。顧客の詳細を画面に表示する listViewItem がある場合、listViewItem の Tag プロパティをビジネス モデルの実際の顧客オブジェクトに設定することができます。

したがって、listView から "SelectedItem" を取得し、それを "customer" クラスにキャストして処理することができます。つまり、選択した listViewItem から選択した顧客を見つけるために、テキストなどを解析する必要はありません。

コードは、「name」変数で ListView と Bob を考慮します。このコードは、"Tag" プロパティが "name" 変数の Bob インスタンスと (参照によって) 同じであるすべての listViewItem の if ステートメントの本体を入力します。

于 2012-11-25T21:21:20.080 に答える
0

演算子の優先順位に関する Microsoft の概要http://msdn.microsoft.com/en-us/library/aa691323(v=vs.71).aspx

(.メンバー選択) 演算子は、キャスト演算子よりも優先度が高くなり(type)ます。

したがって、それをitem.Tag取得して type にキャストしようとしBob、 と等しいかどうかを比較しnameます。

于 2012-11-25T20:49:54.417 に答える