-2

首先,我什至不知道在传递4个参数但没有返回值时使用什么,我只是以Func为例。

我不想使用 Dictionary.Add 插入我的函数,我希望它在初始化字典时在里面。

Dictionary<string, Func<int, int, int, int>> types = new Dictionary<string, 
{"Linear", Func<int, int, int, int>> //idk how to write this part
{ 
    code here
}}
4

1 回答 1

3

对于Func您在问题中遇到的类似问题,这应该有效:

var myDict = new Dictionary<string, Func<int, int, int, int>>()
{
    {"Linear", (int a, int b, int c) => { return 0; } }
};

请注意,您总是需要return在您的函数中有一个。

如果你想要一些没有返回值的东西,你不应该使用 a Func,而是使用 an Action

var myDict = new Dictionary<string, Action<int, int, int, int>>()
{
    {"Linear", (int a, int b, int c, int d) => { } }
};

与函数不同,动作不返回任何内容。

Action<int, int, int, int>注意和之间的含义差异Func<int, int, int, int>。在前者中,最后一个 int 表示第 4 个参数的类型,而在后者中,它表示返回类型。

于 2017-10-01T16:10:44.143 回答