2011-09-03 6 views
0

IDE는 코드EntitySet (TEntity) 클래스의 <extension()> 특성을 적용하는 방법은 무엇입니까?

<Extension()> _ 
Public Function FindByCode(Of TEntity)(ByRef vTEntities As EntitySet(Of TEntity), ByVal vCode As String) As TEntity 
    Return (From oTEntity In vTEntities _ 
          Where oTEntity.Code.Value = vCode _ 
          Select oTentity).FirstOrDefault() 
End Function 

다음 오류가 표시되는 오류는 다음과 같습니다

1.Type 인수 'TEntity가'형식 매개 변수 'TEntity'의 '클래스'제약 조건을 만족하지 않습니다.

2. '코드'는 'TEntity'의 멤버가 아닙니다.

제발 나를 도와주세요.

+1

오류 메시지 – jeroenh

+0

도 게시하면 코드가 불완전합니다. oPersonName이란 무엇입니까? Extention의 철자가 잘못되었습니다. Extension이어야합니다. – jeroenh

답변

1

하나의 문제점은 매개 변수 선언의 일부인 ByRef입니다. 확장 메소드는 첫 번째 매개 변수가 ByVal 인 것을 요구합니다. 다시 Value라는 속성이 Code라는 속성이있다 그러나 당신은 을 가정하고 - - 당신은 ... 어쨌든 ByRef 있다는 사실을 사용하지 하고

또 다른 문제는이 일반적입니다입니다 그 가정들은 어디에서 왔는가? TEntity 유형 매개 변수를 제한하거나 처음에 제네릭을 중지 할 수 있습니다.

편집 : 당신은 또한이 참조 형식으로 강제로 TEntity에 제약 조건을 추가해야합니다 : (TEntity으로 클래스의)

FindByCode

...하지만 원 ' Code 속성이 무엇인지 모르는 사실을 도와주십시오.

+0

"ByVal"로 "ByRef"를 대체했습니다. 문제가 여전히 지속됩니다. –

+0

@Ravi : 두 번째 문제로 인한 것입니다 ... –

관련 문제