2017-11-18 5 views
0
내가

C#을 람다 VB.Net

cfind.OnResponseReceived = (DicomCFindRequest rq, DicomCFindResponse rp) => { 
    Console.WriteLine("Study UID: {0}", rp.Dataset.Get<string>(DicomTag.StudyInstanceUID)); 
}; 

VB.Net

로 변환 할

을 표현하지만, 도

AddHandler cfind.OnResponseReceived, AddressOf onResponse 

AddHandler cfind.OnResponseReceived, Sub(rq, rp) 
     onCFindResponse(rq, rp) 
End Sub 

것은 작품 .. 어떻게 변환 할 수 있습니까?

+0

동작을 수행 할 수는 동일하지 않습니다 - 별도의'Sub'에 원래의 C# Console.WriteLine을 작업을 리팩토링했다? – StuartLC

+0

이것은 이벤트 구독이 아니라 과제입니다. =에주의하고 + =는 없습니다. 따라서 AddHander를 사용하는 것은 올바르지 않습니다. 할당은 VB.NET에서 동일하게 작동하지만 =를 사용합니다. 함수가 아니라 하위를 사용하십시오. –

답변

2

이 동등한 VB.NET해야한다 :

cfind.OnResponseReceived = Sub(rq As DicomCFindRequest, rp As DicomCFindResponse) 
    Console.WriteLine("Study UID: {0}", rp.Dataset.[Get](Of String)(DicomTag.StudyInstanceUID)) 

End Sub 
+0

이 메소드는 아무 것도 반환하지 않으므로'Function'이 아닌'Sub'이어야합니다. –

+0

@visualvincent 네 말이 맞아. 고마워. 답변을 업데이트했습니다. – CodingYoshi