gpt4 book ai didi

c++-cli - 使用 Predicate 和 Array::FindAll() 编译 C++/CLI 委托(delegate)调用时出错

转载 作者:行者123 更新时间:2023-12-04 10:33:05 25 4
gpt4 key购买 nike

以下代码导致 C3867(...函数调用缺少参数列表...)和 C3350(...委托(delegate)构造函数需要 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++/CLI 中,您必须传递包含函数的类型的实际实例:

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

(或使您的 IsEven 方法 static )

关于c++-cli - 使用 Predicate 和 Array::FindAll() 编译 C++/CLI 委托(delegate)调用时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/649633/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com