2012-05-09 9 views
7

이 코드 우연히했습니다String.Contains에는 C#에서 매개 변수가 필요하지 않습니까?

경로 문자열 반환 값뿐만 아니라 문자열이어야한다입니다
var knownSeparators = new[] { "\\", "/", "|", "." }; 
return knownSeparators.FirstOrDefault(path.Contains); 

.

Allthing path.Contains 'intellisense는 매개 변수를 제안합니다. 매개 변수가 없으면 정상적으로 작동합니다.

정확히 어떻게 작동합니까? vb.net에서이 동작을 복사하는 방법이 있습니까?

답변

7

FirstOrDefault은 대리자 (Func<T, bool>)를 사용하며이 호출은 메서드 그룹에서 대리자를 만듭니다. 난 당신이 할 수있는 VB.NET에 의심

Func<string, bool> predicate = path.Contains; 
return knownSeparators.FirstOrDefault(predicate); 

:에 그것은 상당의

Return knownSeparators.FirstOrDefault(AddressOf path.Contains) 

을 ...하지만 난 그것을 시도하지 않고 확실히 말할 수 없습니다.

+0

슬프게도, 주소 오류를 추가 한 후에도 매개 변수가 필요하다는 동일한 오류가 표시됩니다. – Terry

+0

@ djerry : 대괄호를 제거하도록 편집했습니다. 도움이되는지 확인하십시오. –

+0

참으로 그걸 없애고, 교육을 해주고, 고마워. – Terry

관련 문제