c#方法作为参数,其中method包含ref参数

时间:2015-05-04 09:13:13

标签: c#

我有以下方法

public static void Method1(ref List<int> list)
{//code to update list}

是否可以创建一个方法,将此方法作为类似的参数(但不是Action&lt; List&gt;它使用Action&lt; ref List&gt;)

 public static void Method2(Action<List<int>> otherMethod)
    {var newList = new List<int>(); otherMethod(newList)}

我的主要问题是我的方法使用引用而Action&gt;不参考。这可能吗?

2 个答案:

答案 0 :(得分:2)

是的,但您无法使用Action<> / Func<>,您必须“手动”构建代理:

// Your method
public static void Method1(ref List<int> list)
{
}

// The delegate
public delegate void Method1Delegate(ref List<int> list);

// A method that accepts the delegate and uses it
public static void Method2(Method1Delegate del)
{
    List<int> list = null;
    del(ref list);
}

答案 1 :(得分:0)

"column name1" 

 1value_col1 

"coumn name2"

1value_col2

"column name 1"

2value_col1

"column name2"

2value_col2

使用代表。