C#主程序需要调用C程序GA.c这个C代码执行很多函数和一个函数initialize()调用objective()函数。但是这个目标函数需要用C#编写。这个调用是在C代码的循环中,C代码需要在从objective()返回之后继续执行,直到它的main结束并返回控制 到C#主程序。
C# main()
{
//code
call to GA in C;
//remaining code;
}
GA in C:
Ga Main()
{
//code
call to initialize function();
//remaining code
}
initialize function() in GA
{
for(some condition)
{
//code
call to objective(parameter) function in C#;
//code
}
}
我们怎么做?
答案 0 :(得分:4)
答案 1 :(得分:0)
这称为回调。在创建GA实例时,将c#objective()方法作为委托传递给它(委托是对类方法的引用)。在C#中查找有关代理的MSDN帮助主题。
我不知道C方面的正确语法。调用非托管代码肯定会有一些特殊的考虑因素。其他人必然会提供完整的答案。 :)