Car*_*ier 0 c# return conditional-statements
我有一个条件比较两个整数,但它永远不会返回true,即使两个数字都相等.
foreach (TreeViewItem item in Categories.Items)
{
if (subCategory.Tag == item.Tag)
{
item.Items.Add(subCategory);
}
}
Run Code Online (Sandbox Code Playgroud)
两者都是TreeviewItem的属性
TreeViewItem catItem = new TreeViewItem();
catItem.Tag = (int)row["CategoryID"];
Categories.Items.Add(catItem);
Run Code Online (Sandbox Code Playgroud)
和
TreeViewItem subCategory = new TreeViewItem();
subCategory.Tag = (int)row["CategoryID"];
Run Code Online (Sandbox Code Playgroud)
即使两个值都变得相等,条件也会返回错误并且不会达到 item.Items.Add(subCategory);
有谁知道我错过了什么?两者都是同一类型(int)...谢谢
Kin*_*ing 10
请尝试使用Equals:
if (object.Equals(subCategory.Tag, item.Tag)){
//...
}
Run Code Online (Sandbox Code Playgroud)
你所做的比较会比较参考文献,所以它们当然不会相等.
您也可以将每个投射Tag到int并比较投射结果,但Equals在这种情况下使用更方便.
请注意,一个对象也有一个Equals方法,你也可以使用它,但是如果对象是不安全的null.
//subCategory.Tag should not be null
if (subCategory.Tag.Equals(item.Tag)){
//...
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
102 次 |
| 最近记录: |