2016-03-23 8 views
0

私は任意のパラメータとしてref objectを宣言しようとしています。だから私はなぜそれをすることができないのか理解している。 decessionは私の方法を過負荷にしていましたが、新しい問題が発生しました: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

私は求めることができます半関連の質問ですが、なぜrefで 'EmployeeType'を渡す必要がありますか?それは構造体ですか? – CodingGorilla

+0

'employeeType'には何も割り当てません。なぜあなたは 'ref'修飾子を必要としますか? –

+0

@SriramSakthivelオブジェクトをコピーしません。私はCでrefを知っているので、C++で&と同じことをします。 – user3818229

答えて

0

私はそれが良い(または非常に悪い)考えですが、あなたはrefせずに過負荷を作成して返すために使用されていない値の1を必要とするメソッドを呼び出すことができます言わないだろう。

public Guid GetIdByEmployeeTypeName(string typeName) 
{ 
    var tmp = new EmployeeType(); 
    return GetIdByEmployeeType(typeName, ref tmp); 
} 
関連する問題