programing

C#과 VB.NET의 가장 중요한 기능적 차이점은 무엇입니까?

lastcode 2023. 5. 27. 11:33
반응형

C#과 VB.NET의 가장 중요한 기능적 차이점은 무엇입니까?

일반적인 구문에 차이가 있는 것은 확실하지만, 다른 중요한 차이점은 무엇입니까?약간의 차이가 있죠?

연결된 비교는 매우 철저하지만, 주요 차이점에 대해서는 다음과 같이 언급하겠습니다.

  • C#에 익명 메서드가 있습니다. VB도 지금 이것들을 가지고 있습니다.
  • C#에는 수율 키워드(반복 블록)가 있습니다. VB11이 추가했습니다.
  • VB는 암시적 지연 바인딩을 지원합니다(C#은 이제 dynamic 키워드를 통해 명시적 지연 바인딩을 가집니다).
  • 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#보다 생산성이 높고, 생산성 도구(인텔리센스 등) 측면에서 항상 앞서는 것으로 보이며, 질문하는 사람에게 vB를 c#보다 추천합니다.물론, 자신이 c#을 선호한다는 것을 아는 사람은 묻지 않을 것이고, c#이 아마도 그에게 맞는 선택일 것입니다.

C#3의 구문 sugar가 정말로 바를 앞으로 밀어냈지만, 저는 VB의 Linq to XML 내용 중 일부를 말해야 합니다.Net은 꽤 괜찮은 것 같고 복잡하고 깊이 중첩된 XML을 처리하는 것을 조금 더 견딜 수 있게 만듭니다.약간이요.

한 가지 분명한 차이점은 확장 방법(Vb)을 처리하는 방법입니다.Net은 실제로 C#이 허용하지 않는 것을 허용합니다 - 확장 방법이 ref로 정의되는 유형을 전달합니다): http://blog.gadodia.net/extension-methods-in-vbnet-and-c/

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

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

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

C#3 VB에서 점점 더 많은 컴파일러 '마법'과 함께.네트는 정말 뒤쳐졌습니다.VB가 현재 C#이 가지고 있지 않은 유일한 것은handles키워드 - 그리고 그것은 논쟁의 여지가 있는 이점입니다.

@톰 - 정말 유용하지만 약간 구식입니다 - VB. Net과 함께 합니다.'''

@Luke - VB.넷은 여전히 비메소드를 가지고 있지 않지만, 현재 람다를 지원합니다.

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

VB.NET은 try...catch 유형 예외 처리를 지원하지만 VB6의 ON ERROR와 유사한 내용이 있습니다.ON EROR는 심각하게 남용될 수 있으며, 대부분의 경우 try...catch가 훨씬 낫지만, ON EROR는 오류를 트랩, 디코딩할 수 있고 마지막 "try again"이 간단한 한 줄인 COM 시간 초과 작업을 처리할 때 유용할 수 있습니다.try...catch에서도 동일한 작업을 수행할 수 있지만 코드가 훨씬 복잡합니다.

이 주제는 위키피디아와 하드링에서 간략하게 설명되어 있습니다.

http://en.wikipedia.org/wiki/Comparison_of_C_Sharp_and_Visual_Basic_.NET http://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/

예, VB.NET은 대부분의 VB6 문제를 해결하고 적절한 OOP 언어로 만들었습니다.C#과 기능이 유사합니다.저는 C#을 선호하는 경향이 있지만, COM 인터op 타임아웃을 처리하는 데 오래된 VBON ERROR 구조가 유용하다고 생각합니다.하지만 현명하게 사용할 수 있는 무언가 - ON EROR는 쉽게 남용됩니다!!

언급URL : https://stackoverflow.com/questions/11632/what-are-the-most-important-functional-differences-between-c-sharp-and-vb-net

반응형