1

所以,我无法理解:

  • 假设我有一个名为 : Bob 的类和一个名为 name 的变量,其类型为 Bob。

我做这样的事情:

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

}

这实际上是做什么的?如果构造函数中的所有对象都与该类的变量相同,它将该项与类的类型进行比较?

谢谢

4

2 回答 2

0

根据 Microsoft 关于操作员偏好的摘要http://msdn.microsoft.com/en-us/library/aa691323(v=vs.71).aspx

( .member selection) 运算符比 cast 运算符具有更高的优先级(type)

因此,它需要item.Tag并尝试将其强制转换为 type Bob,然后将其与 比较是否相等name

于 2012-11-25T20:49:54.417 回答
0

当您创建 ListViewItems 以添加到 ListView 时,您可以选择设置其“Tag”属性。它是 Object 类型,可以处理任何对象。如果您让 listViewItem 在屏幕上显示一些客户详细信息,您可能会将 listViewItem 的 Tag 属性设置为业务模型中的实际客户对象。

因此,您可以从 listView 中获取“SelectedItem”,将其转换为“customer”类并对其进行操作。这意味着您不必解析文本或任何内容即可从选定的 listViewItem 中找到选定的客户。

您的代码在“名称”变量中考虑了 ListView 和 Bob。代码为“Tag”属性与“name”变量中的 Bob 实例相同(通过引用)的所有 listViewItems 输入 if 语句的主体。

于 2012-11-25T21:21:20.080 回答