C#와 비주얼 베이직 닷넷은 닷넷 프레임워크에서 사용되는 개의 주된 언어이다. == 언어 적합성 == C#는 구문 유사성을 자바와 공유한다. C#와 비주얼베이직 닷넷 모두 현대적 고급 언어인 자바와 C++는 구조상의 유사성을 지닌다. 그러나 자바와 닷넷의 차이점은 많으며, 자바와 샤프의 비교에서 있다. == 런타임 다중 언어 지원 == 닷넷의 주요 목표 하나는 다중 언어 지원이다. 디자인의 목적은 모든 마이크로소프트 언어는 모든 운영 체제 특징으로 같은 단계의 엑세스를 가져야 하고 같은 단계의 힘과 유용성과 다른 언어에서 쓰여진 모듈로부터 간단한 요청을 보여 주어야 한다는 것이다. 모든 닷넷 프로그램 언어는 같은 런타임 엔진과 동일한 추상 구문 트리와 공통 중간 언어를 공유한다. 게다가 모든 닷넷 언어는 가비지 컬렉션과 교차 언어 상속, 예외 처리와 디버깅을 포함한 플랫폼 특징에 엑세스할 있다. 이것은 다른 닷넷 언어로부터 생산된 바이너리는 같음을 허락한다. == 개발 환경 == 비주얼 스튜디오는 C#과 VB.Net의 개발 환경의 몇몇 차이점을 대비한다.비주얼 스튜디오가 발표됨으로써, 개발 환경 간의 차이는 줄여졌다. 예를 들면 초기의 비주얼 스튜디오는 C#을 비주얼 베이직으로 변환하는 지원이 매우 좋지 않았고 C#에 대한 백그라운드 변환을 제공하지 않았다.. 하지만, 비주얼 베이직 6에서 비주얼 베이직 닷넷으로 되면서 다음과 같은 특징이 더해졌다. 기본 네임스페이스는 숨겨짐(해제 가능) 몇몇 프로젝트 파일은 숨길 있음(사용자가 보이게 있음) === C#에 없는 비주얼 베이직 닷넷의 특징 === 변수를 WithEvents 구조체를 사용하여 선언할 있다. 구조는 프로그래머는 '클래스 이름' 목록에서 개체를 선택할 있도록 선언에서 메서드를 선택하고 자동 삽입 메서드 서명을 가진 목록을 사용할 있도록 한다 이벤트의 자동 wireup에 의해, 비주얼 베이직 닷넷은 이벤트에 대한 핸들 구문을 가지고 있다 === 비주얼 베이직 닷넷에 없는 C#의 특징 === unsafe 키워드로 안전하지 않는 코드의 블록(C++/CLI 같이)을 허용한다. 불완전한 인터페이스 반복자와 yield 키워드 멀티 라인 주석(비주얼 스튜디오 IDE는 Visual Basic .NET의 멀티 라인 주석을 지원한다.) 정적 클래스(클래스는 비정적 클래스를 포함할 없다, although VB's Modules are essentially sealed static classes with additional semantics) === 키워드 === 비주얼 베이직은 대소문자를 구별하지 않으며 이것은 키워드에서 어떠한 대소문자 조합도 받아들여짐을 의미한다. 하지만 비주얼 스튜디오는 자동으로 모든 비주얼 베이직 키워드를 일반적인 대소문자 형태로 맞춰준다. (예: "Public", "If") C#은 대소문자를 구별하며 모든 C# 키워드는 소문자로만 이루어져 있다. 비주얼 베이직과 C#은 대부분의 키워드를 공유한다. 비주얼 베이직의 키워드들은 대소문자 형태가 갖추어진 C# 키워드이다. (예: "Public"과 "public", "If"와 "if") === 주석 사용 === C# Visual Basic .NET //한줄 주석 /*여러줄 주석 line line 3*/ ///XML 한줄 주석 /**XML 여러줄 주석 line line 3*/ '한줄 주석 두줄 이상의 주석은 불가능 '''XML 한줄 주석 두줄 이상의 주석은 불가능 === 조건식 === C# Visual Basic .NET if (condition) // condition is true If condition Then condition is true End If if (condition) // condition is true else // condition is false If condition Then condition is true Else condition is false End If if (condition) // condition is true else if // condition is false and othercondition is true If condition Then condition is true ElseIf othercondition Then condition is false and othercondition is true End If if (condition) // condition is true else if // condition is false and othercondition is true else // condition and othercondition are false If condition Then condition is true ElseIf othercondition Then condition is false and othercondition is true Else condition and othercondition false End If === 루프 === C# Visual Basic .NET for (int 0; For To number loop from zero up to one less than number Next for (int number; >= 0; i--) // loops from number down to zero For number To Step -1 loops from number down to zero Next break; //breaks out of loop Exit For 'breaks out of for loop Exit While 'breaks out of while loop Exit Do 'breaks out of do loop === 비교 === ==== 원시 타입 ==== C# Visual Basic .NET if (a == b) // equal If Then equal End If if (a != b) // not equal Or: if (!(a == b)) // not equal If Then not equal End If Or: If Not Then not equal End If if (a == && == == f) // multiple comparisons If And Or Then multiple comparisons End If if (a == && == == f) // comparisons If AndAlso OrElse (e f) Then comparisons End If ==== 개체 유형 ==== C# Visual Basic .NET if b)) // variables refer to the same instance If Is Then variables refer to the same instance End If if b)) // variables do not refer to the same instance If IsNot Then variables do not refer to the same instance End If if (a.Equals(b)) // 인스턴트가 동등하다. If Then 인스턴트가 동등하다. End If if a.Equals(b)) // 인스턴트가 동등하지 않다. If Then 인스턴트가 동등하지 않다. End If var type typeof(int); Dim type if (a is b) // types of and are compatible If TypeOf Is Then types of and are compatible End If if (!(a is b)) // types of and are not compatible If Not TypeOf Is Then types of and are not compatible End If ;C#: ;VB.NET: If Then // converting from Gregorian to Persian date dateTime); year, int month, int day, // converting from Islamic to Persian date moonDate); year, int month, int day, == zx1 == mm mm .ry up == 외부 링크 == Microsoft Visual Studio Language Equivalents 2003-2010 Microsoft VSTO Programming with Visual Basic Versus C# CodeProject VB vs C# Syntactical differences between C# and VB.NET C#에서 비주얼 베이직 닷넷으로 번역하는 무료 온라인 사이트(영문) 비주얼 베이직 닷넷에서 C#으로 번역하는 무료 온라인 사이트(영문) 무료 온라인 VB.NET과 C#간의 상호 변환기 Extension Method Handling C# vs VB.NET 분류:닷넷 프레임워크 분류:프로그래밍 언어의 비교 분류:베이직 프로그래밍 언어 계열 분류:C 프로그래밍 언어 계열