有可能不将ref复制到局部变量吗?

时间:2016-03-23 16:37:27

标签: c# ref anonymous-methods

我尝试将ref object声明为可选参数。所以我理解为什么我不能这样做。 decesion是重载我的方法,现在我有一个新的问题:

public Guid GetIdByEmployeeTypeName(string typeName)
{
    return SurroundWithTryCatch(() => new EmployeeType().GetEmployerGroupIdByTypeName(typeName));
}

public Guid GetIdByEmployeeTypeName(string typeName, ref EmployeeType employeeType)
{
    EmployeeType type = employeeType; //The problem here. I can not use ref object inside an anonymous method.
    return SurroundWithTryCatch(() => type.GetEmployerGroupIdByTypeName(typeName));
}

如何优化代码?

1 个答案:

答案 0 :(得分:0)

我不会说这是一个好的(或非常糟糕的)想法,但你可以创建没有ref的重载,并且调用方法需要一个不带用于返回的值:

public Guid GetIdByEmployeeTypeName(string typeName)
{
    var tmp = new EmployeeType();
    return GetIdByEmployeeType(typeName, ref tmp);
}