C#에서 VB.net으로 변환하는 가장 좋은 변환기는 무엇입니까?[닫은]
문제
내 VB.net 문제에 대한 해결책을 찾기 위해 인터넷을 검색하는 동안 특정 주제에 대한 유용한 기사를 자주 찾았지만 코드는 C#입니다.큰 문제는 아니지만 수동으로 VB로 변환하는 데 시간이 좀 걸립니다.C#에서 VB로 또는 그 반대로 코드 변환기를 제공하는 일부 사이트가 있지만 코드 변환 후 모든 결함을 수정하는 것은 처음에 혼자서 수행하는 것만큼 시간이 많이 걸립니다.
지금까지 나는 사용하고 있습니다 http://labs.developerfusion.co.uk/convert/csharp-to-vb.aspx
더 좋은 것을 알고 있나요?
해결책
좋은 변환기를 찾을 수 없다면 언제든지 C# 코드를 컴파일하고 디스어셈블러를 사용할 수 있습니다. 반사기 Visual Basic 코드를 보려면일부 변수 이름이 변경됩니다.
다른 팁
텔레릭은 좋은 변환기 이는 SharpDevelop을 기반으로 하며 수년 동안 꽤 잘 작동했지만 (SharpDevelop을 기반으로 하기 때문에) 몇 년 동안 업데이트되지 않았습니다.
나는 최근에 roslyn 기반 변환기.얼마나 잘 작동하는지, 얼마나 잘 유지관리되는지는 모르겠지만 오픈 소스이므로 언제든지 포크하고 필요에 따라 업데이트할 수 있습니다.
샤프디벨롭 C#과 VB.NET 간의 변환기가 내장되어 있습니다.완벽한 생각이 아닙니다(예:VB.NET의 선택적 값은 C#에 해당하는 값이 없으므로 변환기 메서드의 서명을 편집해야 합니다. 그러나 웹 페이지가 아닌 IDE 내부에서 모든 작업을 수행하므로 시간을 절약할 수 있습니다(복사). C# 코드, 붙여넣기, 버튼 누르기, VB.NET 코드 복사, IDE에 붙여넣기 :P )
내 생각에 가장 좋은 방법은 손으로 다시 작성할 수 있도록 다른 언어를 충분히 배우는 것입니다. 변환기가 잘 처리할 수 있을지 확신할 수 없는 특정 측면에는 상당히 어려운 차이점이 있습니다.예를 들어, 다음의 C#에서 VB로의 번역을 비교해 보세요.
public class FileSystemEventSubscription : EventSubscription
{
private FileSystemWatcher fileSystemWatcher;
public FileSystemEventSubscription(IComparable queueName,
Guid workflowInstanceId, FileSystemWatcher fileSystemWatcher) : base(queueName, workflowInstanceId)
{
this.fileSystemWatcher = fileSystemWatcher;
}
된다
Public Class FileSystemEventSubscription
Inherits EventSubscription
Private myFileSystemWatcher As FileSystemWatcher
Public Sub New(ByVal QueueName As IComparable, ByVal WorkflowInstanceID As Guid, ByVal Watcher As FileSystemWatcher)
MyBase.New(QueueName, WorkflowInstanceID)
Me.myFileSystemWatcher = Watcher
End Sub
C#은 Custom Activity Framework 샘플에서 가져온 것인데 링크가 없어졌습니다.그러나 여기에는 (VB 관점에서) 보기 흉해 보이는 상속이 포함되어 있습니다.
나는 현재 다음 두 가지를 가장 자주 사용합니다.
http://www.carlosag.net/tools/codetranslator/
그러나 다음과 같은 다른 제품에서도 어느 정도 성공을 거두었습니다.
http://converter.atomproject.net/
저는 다음과 같은 무료 Visual Studio 2012 플러그인을 사용하고 있습니다. 언어 변환
2010/2012에서는 완벽하게 작동하지만 불행히도 VS 2013에서는 아직 작동하지 않습니다.
변환이 100% 정확하지는 않지만 확실히 매우 도움이 됩니다. 처음 실행하는 것은 약간 까다롭습니다. 아래 이미지를 확인하시기 바랍니다.
마지막으로 확인해보니, 샤프디벨롭 하나가 있고 오픈 소스이기도 합니다.
DLL 또는 EXE를 Redgate(이전 Lutz Roeder)에 로드할 수 있습니다. .Net 리플렉터, 방법을 선택한 다음 언어 콤보에서 원하는 언어를 선택하세요.선택한 방법의 코드가 선택한 언어로 표시됩니다.
이게 도움이 되길 바란다.
이것을 시도해 볼 수 있습니다. 변환기.C#에서 VB로, VB에서 C#으로의 기능이 있습니다.
도움이 되었기를 바랍니다.
Carlos Aguilar Mares는 약 40년 동안 온라인 변환기를 사용해 왔습니다. 코드 번역기 하지만 저는 Reflector가 더 나은 대답이라는 데 동의합니다.
귀하의 질문에 답변하지는 않지만, 저도 비슷한 입장에 있었다고 말씀드리겠습니다.
.NET을 처음 시작할 때 C#의 코드 샘플이 어색하다는 것을 깨달았지만 첫 번째 프로젝트를 시작하고 몇 주 후에(.NET 프레임워크와 VB.NET 자체에 더 익숙해진 후) 이것이 C# 코드를 리버스 엔지니어링해야 한다는 것은 흥미롭고 때로는 유익합니다.구문 측면뿐만 아니라 접근 방식의 미묘한 차이점에 대해서도 학습합니다. 이 측면에서 열린 마음을 갖는 것이 유용합니다.
나는 프레임워크에 대해 점점 더 많이 배우면서 VB.NET을 고수하고 있지만 머지않아 '다국어'가 되려는 의도로 C#에 빠져들게 될 것입니다.
현재 저는 CodeProject에서 찾은 VS2005용 플러그인을 사용하고 있습니다(http://www.codeproject.com/KB/cs/Code_convert_add-in.aspx);외부 서비스를 사용합니다(http://www.carlosag.net/Tools/CodeTranslator/) 번역을 수행합니다.
가끔 오프라인일 때 변환기 도구(http://www.kamalpatel.net/ConvertCSharp2VB.aspx).
에 있는 것 http://www.developerfusion.com/tools/convert/csharp-to-vb/ (새 URL)은 이제 .NET 3.5 구문을 지원하며(다시 한 번 #develop 담당자에게 감사드립니다) 결과를 자동으로 클립보드에 복사합니다. :)