是否可以不将 ref 复制到局部变量?
Is it possible do not copy ref to local variable?
我正在尝试将 ref object
声明为可选参数。所以我明白为什么我不能那样做。决定是重载我的方法,现在我遇到了一个新问题:
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));
}
如何优化我的代码?
我不会说这是一个好(或非常坏)的主意,但您可以在没有 ref
的情况下创建重载并调用需要一个具有未用于 return 的值的方法:
public Guid GetIdByEmployeeTypeName(string typeName)
{
var tmp = new EmployeeType();
return GetIdByEmployeeType(typeName, ref tmp);
}
我正在尝试将 ref object
声明为可选参数。所以我明白为什么我不能那样做。决定是重载我的方法,现在我遇到了一个新问题:
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));
}
如何优化我的代码?
我不会说这是一个好(或非常坏)的主意,但您可以在没有 ref
的情况下创建重载并调用需要一个具有未用于 return 的值的方法:
public Guid GetIdByEmployeeTypeName(string typeName)
{
var tmp = new EmployeeType();
return GetIdByEmployeeType(typeName, ref tmp);
}