문제

확실히 일반적인 구문에는 차이가 있습니다. 하지만 다른 중요한 차이점은 무엇입니까?있다 일부 차이점이 있죠?

도움이 되었습니까?

해결책

연결된 비교는 매우 철저하지만 주요 차이점에 대해서는 다음 사항에 주목하겠습니다.

  • C#에는 익명 메서드가 있습니다.VB에도 이러한 기능이 있습니다.
  • C#에는 Yield 키워드(반복자 블록)가 있습니다.VB11 님이 추가했습니다
  • VB는 지원합니다 암시적 후기 바인딩 (C#에는 이제 동적 키워드를 통한 명시적인 런타임 바인딩이 있습니다)
  • VB는 XML 리터럴을 지원합니다.
  • VB는 대소문자를 구분하지 않습니다.
  • VB를 위한 추가 기본 코드 조각
  • 더욱 독창적인 C#용 리팩토링 도구Visual Studio 2015는 이제 VB와 C# 모두에 대해 동일한 리팩터링 도구를 제공합니다.

일반적으로 MS가 각 언어에 중점을 두는 사항은 두 언어가 매우 다른 대상을 대상으로 하기 때문에 다양합니다. 이 블로그 게시물 타겟 청중에 대한 좋은 요약이 있습니다.Microsoft에서 어떤 종류의 도구를 얻을 수 있는지가 결정되므로 자신이 속한 청중을 결정하는 것이 좋습니다.

다른 팁

이 주제는 .Net 2.0이 출시된 이후로 많은 논의를 거쳤습니다.이것 좀 봐 위키피디아 읽을 수 있는 요약을 위한 기사.

이는 구문으로 간주될 수 있지만 VB.NET은 ~에C#이 대소문자인 경우 민감합니다. 예민한.

이것 매우 포괄적인 참고 자료입니다.

나는 당신이 구글을 할 수 있다고 가정하기 때문에 더 많은 사이트에 대한 링크가 당신이 찾고 있는 것이라고 생각하지 않습니다.

내 대답:개발자의 이력을 바탕으로 선택하세요.C#은 JAVA에 더 가깝고 아마도 C++와 비슷할 것입니다.VB.NET은 VB 프로그래머에게 더 쉬웠지만 이전 VB에서 새로운 .NET 프로그래머가 나오지 않기 때문에 더 이상 문제가 되지 않는 것 같습니다.

내 의견은 VB가 C#보다 더 생산적이라는 것입니다. 생산성 도구(예: intelisense) 측면에서는 VB가 항상 앞서 있는 것 같습니다. 그리고 묻는 사람에게는 C#보다 vb를 추천하고 싶습니다.물론, 자신이 C#을 선호한다는 것을 아는 사람은 묻지 않을 것이며, 아마도 그에게는 C#이 올바른 선택일 것입니다.

C#3의 구문 설탕이 실제로 한계를 뛰어넘었지만 VB.Net의 Linq to XML 관련 기능 중 일부는 매우 훌륭해 보이고 복잡하고 깊이 중첩된 XML을 좀 더 견딜 수 있게 만들어준다고 말하고 싶습니다.조금만.

눈에 띄는 차이점 중 하나는 확장 메서드를 처리하는 방법입니다(Vb.Net은 실제로 C#에서 허용하지 않는 기능(확장 메서드가 ref로 정의되는 형식 전달)을 허용합니다.) http://blog.gadodia.net/extension-methods-in-vbnet-and-c/

구문을 제외하고는 더 이상 그렇지 않습니다.둘 다 정확히 동일한 IL로 컴파일하므로 무언가를 VB로 컴파일하고 C#에 반영할 수 있습니다.

명백한 차이점의 대부분은 구문 설탕입니다.예를 들어 VB는 동적 유형을 지원하는 것처럼 보이지만 실제로는 C#만큼 정적입니다. VB 컴파일러가 이를 파악합니다.

Visual Studio는 C#과 다르게 VB에서 동작합니다. 많은 기능을 숨기지만 백그라운드 컴파일(소규모 프로젝트에 적합, 대규모 프로젝트에 리소스 호깅)과 더 나은 코드 조각 지원을 추가합니다.

C#3의 컴파일러 '마법'이 점점 더 많아지면서 VB.Net은 정말 뒤쳐졌습니다.현재 VB에는 있지만 C#에는 없는 유일한 기능은 handles 키워드 - 이는 논쟁의 여지가 있는 이점입니다.

@Tom - 정말 유용하지만 약간 구식입니다 - VB.Net은 이제 XML 문서도 지원합니다. '''

@Luke - VB.Net에는 여전히 익명 메서드가 없지만 이제 람다를 지원합니다.

내 생각에 가장 큰 차이점은 C#에서 안전하지 않은 코드를 작성할 수 있다는 것입니다.

VB.NET은 try...catch 유형 예외 처리를 지원하지만 여전히 VB6의 ON ERROR와 비슷한 점이 있습니다.ON ERROR는 심각하게 남용될 수 있으며 대부분의 경우 try...catch가 훨씬 더 좋습니다.그러나 ON ERROR는 오류를 포착하고 디코딩할 수 있으며 최종 "다시 시도"가 간단한 한 줄인 COM 시간 초과 작업을 처리할 때 유용할 수 있습니다.try...catch를 사용하여 동일한 작업을 수행할 수 있지만 코드가 훨씬 더 복잡해집니다.

이 주제는 Wikipedia 및 Harding에 간략하게 설명되어 있습니다.

http://en.wikipedia.org/wiki/Comparison_of_C_Sharp_and_Visual_Basic_.NEThttp://www.harding.edu/fmccown/vbnet_csharp_comparison.html

그냥 살펴보고 그것에 대해 메모를 작성하세요.

IL에 도달하면 모든 것이 비트에 불과합니다.대소 문자를 구분하지 않는 것은 단지 사전 컴파일러 통과입니다.그러나 일반적인 합의는 vb가 더 장황하다는 것입니다.C#을 작성할 수 있다면 눈과 손을 아끼고 동일한 작업을 수행하기 위해 더 적은 양의 코드를 작성하는 것이 좋습니다.

눈에 띄는 차이점 중 하나는 확장 메서드를 처리하는 방법입니다(Vb.Net은 실제로 C#에서 허용하지 않는 기능(확장 메서드가 ref로 정의되는 형식 전달)을 허용합니다.) http://blog.gadodia.net/extension-methods-in-vbnet-and-c/

스콧 한셀만 최근에 var와 Dim을 대조하는 흥미로운 기사를 썼습니다: 기본으로 돌아가기:var != 희미함

예, VB.NET은 대부분의 VB6 문제를 해결하고 이를 적절한 OOP 언어로 만들었습니다.C#과 기능이 비슷합니다.저는 C#을 선호하는 경향이 있지만 COM interop 시간 초과를 처리하는 데 이전 VB ON ERROR 구문이 유용하다는 것을 알았습니다.하지만 현명하게 사용해야 할 것 - ON ERROR는 쉽게 남용됩니다!!

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top