2011-03-26 2 views
0

이 아래 코드를 vb.net로 변환하는 데 도움을주십시오. 익명 메소드를 vb.net으로 변환 할 생각이 없습니다. 현재 VS2010을 사용하고 있습니다.님이 익명 vb.net으로 변환하는 데 도움이

public void DoWork(CustomObject obj) 
    { 
     var linq = (from s in storages 
        where s.Key == obj.Key 
        select s.Value).ToList(); 

     Action<ICustomService> act = 
      delegate(ICustomService service) 
      { 
       service.ChangeValue(obj); 
      }; 

     linq.ForEach(act); 
    } 

감사합니다.

순수 C#을 개발자

+0

VB.NET 익명 형식은 = ...' – BoltClock

+2

왜 당신이 정상'foreach' 문을 단지'희미한 somename를 사용하지 않는됩니다? – CodesInChaos

+0

@BoltClock : 그는 익명 형식이 아니라 익명 메서드 (대리자)라고 말했습니다. –

답변

4
Public Sub DoWork(ByVal obj As CustomObject) 

    Dim values = (From s In storages 
       Where s.Key = obj.Key 
       Select s.Value).ToList() 

    values.ForEach(Sub(service As ICustomService) service.ChangeValue(obj)) 

End Sub 
+0

VS2010 필요. –

+1

vcha 그가 VS2010 ;-) 사용 언급했다 –

+0

위대한, 당신은 마일로 다른 무시 무시한 답변을 이겼다. +1 –

-1
Public Sub DoWork(ByVal obj As CustomObject) 
    Dim linq = storage.Where(Function(s) s.Key = obj.Key).[Select](Function(s) s.Value).ToList() 

    Dim act As Action(Of ICustomService) = Sub(service As ICustomService) 
               service.ChangeValue(obj) 
              End Sub 

    linq.ForEach(act) 
End Sub 
+0

@Bala R; 빠른 답변을 주셔서 감사합니다. 나는 또한 "(s.Key == select s.Value가 저장된 저장소의) 코드에서 .ToList();"를 물어보고 싶습니다. " VB.NET에서 사용할 수 있습니까? 나는 그것에 궁금해. – tong

+2

VB에서는 Function()과 같은 기능이 없습니다. 그것은 단지 Sub()이어야합니다. 또한 선택 주위에 대괄호가 필요하지 않습니다 ... –

+0

@ Meta-Knight; 코드를 게시 할 수 있습니까? – tong

-1

SharpDevelop 지원 DOTNET위한 무료 IDE입니다 몇 가지 자동 소스 코드 변환 즉, 귀하의 예를 들어 VB.NET, 아이언 루비 또는 IronPyton

에 C#을 그 생성 된

' 
' * Created by SharpDevelop. 
' * User: k3b 
' * Date: 26.03.2011 
' * Time: 18:44 
' * 
' * To change this template use Tools | Options | Coding | Edit Standard Headers. 
' 

Imports System 

Namespace DefaultNamespace 
    ''' <summary> 
    ''' Description of Class1. 
    ''' </summary> 
    Public Class Class1 
     Public Sub New() 
     End Sub 
     Public Sub DoWork(obj As CustomObject) 
      Dim linq = (From s In storages Where s.Key = obj.Keys.Value).ToList() 

      Dim act As Action(Of ICustomService) = Function(service As ICustomService) Do 
       service.ChangeValue(obj) 
      End Function 

      linq.ForEach(act) 
     End Sub 
    End Class 
End Namespace 
+0

@ k3b; 정말 고맙습니다. 이 사이트를 사용하여 간단한 C# 코드를 번역합니다. 나는 그것이 좋다고 생각하지만 신뢰할 수있는 온라인 변환기가 있습니까? – tong

+0

예, 번역자에게는이 코드가 컴파일되지 않습니다. Function.do 대신 Sub 여야합니다. 여러분은 적어도 코드가 컴파일되도록해야합니다! –

+3

이것은 길지 않은 합법적 인 VB.NET 코드가 아닙니다. 특히 * Do *는 완전히 난센스입니다. 게시하는 것은 매우 도움이되지 않습니다. 또 다른 IDE를 권장하기 만하면 형편없는 번역자를 사용할 수 있으므로 해로울 수 있습니다. 영업 이익은 시간을 보내고 어디에도 가지 않을 수 있습니다. -1. –

관련 문제