将C函数指针结构转换为C#

时间:2016-04-05 07:04:15

标签: c#

我需要将以下代码从C转换为C#。主要问题是结构。我需要能够通过数字引用该函数。 任何人都可以帮我吗?

void test00(void)
{
    printf("This is test 00\r\n");
}

void test01(void)
{
    printf("This is test 01\r\n");
}

void test02(void)
{
    printf("This is test 02\r\n");
}

typedef struct
{
    int test_number;
    int (*func)();
} test_list_type;

test_list_type test_list[] =
{
    {0, test00},
    {1, test01},
    {2, test02}
};

int main()
{
    int i;

    for (i = 0; i < 3; i++)
    {
        test_list[i].func();
    }

    return 0;
}

1 个答案:

答案 0 :(得分:0)

你需要像这样声明你的结构:

struct test_list_type
{
    int test_number;
    public Action function;
}

然后你可以像这样建立一个新的结构实例:

var test = new teststruct
{
    test_number = 0,
    function = test02
};

并按照以下方式调用方法/操作:

test.function();