表达式必须具有类类型-C ++ / CLI

问题描述 投票:0回答:1

所以我有这段代码是我从here中得到启发的,有人已经遇到了这种类型的错误,但是在我的情况下[article)并没有解决它:

using namespace System::Collections;
using namespace System::Windows::Forms;
int ListViewColumnSorter::Compare(System::Object^ x, System::Object^ y)
{
    int compareResult;
    ListViewItem^ listviewX;
    ListViewItem^ listviewY;

    // Cast the objects to be compared to ListViewItem objects
    listviewX = static_cast<ListViewItem^>(x);
    listviewY = static_cast<ListViewItem^>(y);

        // Compare the two items
    compareResult = ObjectCompare->Compare(listviewX->SubItems[ColumnToSort].Text,
        listviewY->SubItems[ColumnToSort].Text);

    // Calculate correct return value based on object comparison
    if (OrderOfSort == System::Windows::Forms::SortOrder::Ascending)
    {
        // Ascending sort is selected, return normal result of compare operation
        return compareResult;
    }
    else if (OrderOfSort == System::Windows::Forms::SortOrder::Descending)
    {
        // Descending sort is selected, return negative result of compare operation
        return (-compareResult);
    }
    else
    {
        // Return '0' to indicate they are equal
        return 0;
    }
}

但是在此行却给我一个错误:

compareResult = ObjectCompare->Compare(listviewX->SubItems[ColumnToSort].Text,
        listviewY->SubItems[ColumnToSort].Text);

告诉我listviewXlistviewY必须具有类类型。我不明白我是否正确指向ListViewItem类型的对象。

任何想法?

提前感谢。

.net windows c++-cli
1个回答
-1
投票

这些行的^符号是什么? :D

ListViewItem^ listviewX;
ListViewItem^ listviewY;

这些绝对必须是*

© www.soinside.com 2019 - 2024. All rights reserved.