C#과 VB.NET의 가장 중요한 기능적 차이점은 무엇입니까?
일반적인 구문에 차이가 있는 것은 확실하지만, 다른 중요한 차이점은 무엇입니까?약간의 차이가 있죠?
연결된 비교는 매우 철저하지만, 주요 차이점에 대해서는 다음과 같이 언급하겠습니다.
-
C#에 익명 메서드가 있습니다. -
C#에는 수율 키워드(반복 블록)가 있습니다. - VB는 암시적 지연 바인딩을 지원합니다(C#은 이제 dynamic 키워드를 통해 명시적 지연 바인딩을 가집니다).
- VB는 XML 리터럴을 지원합니다.
- VB는 대소문자를 구분하지 않습니다.
- 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
'programing' 카테고리의 다른 글
날짜 대 날짜 시간 (0) | 2023.05.27 |
---|---|
다중 처리로 인해 Python이 충돌하고 fork()가 호출되었을 때 다른 스레드에서 진행 중이었을 수 있는 오류가 발생합니다. (0) | 2023.05.27 |
분기를 전환하지 않고 '깃 풀'하는 방법(깃 체크아웃)? (0) | 2023.05.27 |
NodeJS 및 NPM을 최신 버전으로 업데이트하려면 어떻게 해야 합니까? (0) | 2023.05.27 |
모든 열 머리글에서 텍스트 래핑을 활성화하려면 어떻게 해야 합니까? (0) | 2023.05.27 |