2016-07-18 2 views
1

프로그래밍에서 새로운 기능입니다. 특정 함수에 대한 코드를 작성할 때 오류가 발생했습니다. 이 오류를 해결하도록 도와주세요.메서드의 형식 인수를 사용에서 유추 할 수 없습니다.

public IList<ScoreCardListItemTO> UpdateDate(bool IsScoreCardUpdate, bool IsInputHeaderUpdate, long ScoreCardId, 
    long ScoreCardSubmitResponseId, long QuestionId, DateTime UpdatedOn) 
{ 
    var parameters = new[] 
    { 
     new ObjectParameter("IsScoreCardUpdate", IsScoreCardUpdate), 
     new ObjectParameter("IsInputHeaderUpdate", IsInputHeaderUpdate), 
     new ObjectParameter("ScoreCardId", ScoreCardId), 
     new ObjectParameter("ScoreCardSubmitResponseId", ScoreCardSubmitResponseId), 
     new ObjectParameter("QuestionId", QuestionId), 
     new ObjectParameter("UpdatedOn", UpdatedOn), 
    }; 

    ObjectResult items = ExecuteEqmFunction("SyncUpdateOnColumn", string.Empty); 
    return items; 
} 

이 라인에서 에러 표시

ObjectResult items = ExecuteEqmFunction("SyncUpdateOnColumn", string.Empty); 
return items; 

에러 상태 메소드 'EQM.DataLayer.EqmRepository.ExecuteEqmFunction (문자열 위한

에러 42 개 형태 인수 문자열, params System.Data.Objects.ObjectParameter []) '은 (는) 사용에서 유추 한 일 수 없습니다. 형식 인수를 명시 적으로 지정하십시오. 그것이 말하는 것처럼

+0

아마도 가장 일반적인 방법 인 ExecuteEqmFunction 메소드를 보여줄 필요가 있습니다. – user3185569

답변

2

, ExecuteEqmFunction는 당신이 첫 번째 2

ObjectResult items = ExecuteEqmFunction("SyncUpdateOnColumn", string.Empty, parameters); 

내가 컨텍스트 부족을 시도 공급하는 3 개 또는 4 인수를 기대하고있다,하지만 난 이유를 모르겠어 그렇지 않으면 그 범위에 parameters을 만들면 공급하지 않을 것입니다.

+0

'params '를 사용하지 않으면 세 번째 매개 변수가 선택적 인수 배열이됩니까? 하나의 매개 변수가 없으면 컴파일러는 * 사용 오류에서 유추 할 수 없습니다. AFAIK. – user3185569

+0

네, 저도 그렇게 생각했습니다. 그러나 거기에 여분의 공간으로 판단, 나는 OP 또는 누군가가 거기에 있었거나, OP는 경험이 부족하고 정확하게 우리에게 오류를 생성 코드를주지 않은 세 번째 매개 변수가 엉망이라고 느낀다지만, 그 과정에서 코드 함께 노는 것. 확실하지 않다. –

+0

이 오류는 일반적인 방법에 대해 표시됩니다. 'T'는 매개 변수의 일부가 아니기 때문에 (컴파일러에서 유추 할 수있는 유일한 방법이기 때문에)이 generic 메서드에 대해 형식 인수를 명시 적으로 지정해야합니다. – user3185569

1

질문을 편집 할 때 오류 정의에서 발견 했으므로 그렇지 않으면 표시되지 않습니다..

ExecuteEqmFunction<T> 메서드는 일반적이며 형식은 T입니다. 일반 메소드는 전달한 인수에서만 유형을 유추합니다. 당신은 타입 T 어떤 인수를 가지고 있지 않기 때문에, 명시 적 유형을 지정해야합니다

T 가정
ObjectResult items = ExecuteEqmFunction<ObjectResult>("SyncUpdateOnColumn", 
                   string.Empty, parameters); 

그 방법의 반환 유형입니다.

+0

니스.     –

관련 문제