加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c -cli – 使用Predicate with Array :: FindAll()编译C/C++LI委

发布时间:2020-12-16 03:18:34 所属栏目:百科 来源:网络整理
导读:以下代码导致C3867(…函数调用缺少参数列表…)和C3350(…委托构造函数需要2个参数…).我究竟做错了什么? public ref class Form1 : public System::Windows::Forms::Form { public: bool IsEven(int i){ return (i % 2) == 0; } Form1(void) { numbers = gc
以下代码导致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<int>{
                1,2,3,4,5,6,7,8,9,10
            };

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

解决方法

在C/C++LI中,您必须传递包含该函数的类型的实际实例:
array<int> ^even = Array::FindAll(
    numbers,gcnew Predicate<int>(this,&Test::IsEven));

(或使您的IsEven方法静态)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读