2016-03-23 10 views
0

Я пытаюсь объявить ref object как необязательный параметр. Поэтому я понял, почему я не могу этого сделать. Decesion был перегружать мой метод, и теперь у меня новая проблема:Возможно ли скопировать ref в локальную переменную?

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)); 
} 

Как оптимизировать свой код?

+4

Могу ли я спросить полу-связанный вопрос, почему вам нужно передать 'EmployeeType' по ref, это структура? – CodingGorilla

+0

Вы ничего не присваиваете 'employeeType'. Почему вам нужен модификатор 'ref' здесь? –

+0

@SriramSakthivel Не копировать объект. Как я знаю, в C# то же самое с & в C++ .. – user3818229

ответ

0

Я бы не сказал, что это хорошо (или очень плохо) идея, но вы можете создать перегрузку без ref и способа вызова, требующих один со значением, которое не используется для возврата:

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

 Смежные вопросы

  • Нет связанных вопросов^_^