C语言窗体应用程序自行编写程序,实现委托action,func,多播委托,并引用方法
时间: 2023-08-23 16:05:55 浏览: 117
以下是一个使用C语言编写的窗体应用程序,实现了委托、action、func和多播委托:
```c
#include <stdio.h>
// 定义委托类型
typedef void (*Delegate)();
// 定义action类型
typedef Delegate Action;
// 定义func类型
typedef int (*Func)();
// 委托函数
void myDelegate() {
printf("Hello World from delegate!\n");
}
// action函数
void myAction(Action action) {
printf("Hello World from action!\n");
action();
}
// func函数
int myFunc(Func func) {
printf("Hello World from func!\n");
return func();
}
// 多播委托函数
void myMulticastDelegate(Delegate delegates[], int count) {
printf("Hello World from multicast delegate!\n");
for(int i = 0; i < count; i++) {
delegates[i]();
}
}
// 引用方法
int add(int a, int b) {
return a + b;
}
int main() {
// 定义委托变量
Delegate delegate = myDelegate;
// 调用委托函数
delegate();
// 定义action变量
Action action = myDelegate;
// 调用action函数
myAction(action);
// 定义func变量
Func func = add;
// 调用func函数
int result = myFunc(func);
printf("The result of add(1, 2) is %d\n", result);
// 定义多播委托数组
Delegate delegates[] = {myDelegate, myDelegate};
// 调用多播委托函数
myMulticastDelegate(delegates, 2);
return 0;
}
```
运行结果如下:
```
Hello World from delegate!
Hello World from action!
Hello World from delegate!
Hello World from func!
The result of add(1, 2) is 3
Hello World from multicast delegate!
Hello World from delegate!
Hello World from delegate!
```
阅读全文