当前位置:  开发笔记 > 开发工具 > 正文

使用Predicate with Array :: FindAll()编译C++/CLI委托调用时出错

如何解决《使用PredicatewithArray::FindAll()编译C++/CLI委托调用时出错》经验,为你挑选了1个好方法。

以下代码导致C3867(...函数调用缺少参数列表...)和C3350(...委托构造函数需要2个参数...).我究竟做错了什么?

    public ref class Form1 : public System::Windows::Forms::Form
    {
    public:
        bool IsEven(int i){
            return (i % 2) == 0;
        }

        Form1(void)
        {
            numbers = gcnew array{
                1, 2, 3, 4, 5, 6, 7, 8, 9, 10
            };

            array ^even = Array::FindAll(
                numbers, gcnew Predicate(IsEven));
        }
    };

Groo.. 13

在C++/CLI中,您必须传递包含该函数的类型的实际实例:

 array ^even = Array::FindAll(
    numbers, gcnew Predicate(this, &Test::IsEven));

(或制定IsEven方法static)



1> Groo..:

在C++/CLI中,您必须传递包含该函数的类型的实际实例:

 array ^even = Array::FindAll(
    numbers, gcnew Predicate(this, &Test::IsEven));

(或制定IsEven方法static)

推荐阅读
黄晓敏3023
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有