如何将带参数的函数/方法添加到Dicitonary-object?

时间:2015-05-04 10:11:33

标签: c# function dictionary methods reference

为了避免更大的switch-case-block,我想(匿名)函数或方法添加到Dictionary 。这个过程已经有很多解释。但是,我试图存储的函数/方法必须采用参考参数

private static Dictionary<int, Func<ref object, string, bool>> someMethDict = 
    new Dictionary<int, Func<ref object, string, bool>>(){};

public static void Init ()
{
    someMethDict.Add(0, someMeth);
}

public static bool someMeth (ref object obj, string param)
{
    // do something
    return true;
}

此代码示例无法编译,因为ref - 关键字是Dictionary-instantiation中的无效标记。

那么,我怎样才能在适当的C#中引用编译器来将这些带有引用参数的方法存储到我的Dictionary中?虽然我使用上面的Init方法,但要填写Dictionary,有没有办法在这些情况下直接用存储在其中的函数/方法实例化它?

非常感谢帮助!

1 个答案:

答案 0 :(得分:5)

声明您自己的委托类型:

delegate bool MyDelegate (ref object obj, string param)

我希望我的语法正确。自从我上次使用C#语言的这个功能以来已经有很长一段时间了。由于引入了Func类型,因此很少有用。