재우니의 블로그



C#은 닷넷환경에서 만든 새로운 객체지향적인 언어이며, 닷넷런타임을 위해서 특별히 제작되었다고 합니다.C#은 두가지의 중요한 특징을 지니고 있답니다. 

첫번째는 닷넷런타임의 호환성을 높이기 위해서 특별히 제작을 하였고,
두번째는 가장 현대적인 객체지향언어라고 말합니다. MS측에서는 객체지향의 기능을 가진 언어를 다루어본 사람이라면 쉽게 C#을 배울 수 있도록 설계를 했다고 합니다.

닷넷이 지원하지만 C#은 지원하지 않은 기능이 있는 반면에 C#은 지원하지만 닷넷은 지원하지 않은 기능이 있답니다. 그것은 C#의 예외처리문이 바로 이러한 범주에 들어갑니다. 만약에 개발자 여러분이 C# 기능을 소스코드에 사용한다면 컴파일러는 이 코드를 닷넷이 지원하는 것으로 변경을 합니다. 예를 들면 연산자 오버로딩에 관련된 것입니다.

C#에서는 연산자를 오버로드하여 사용할 수 있답니다. 나중에 설명을 드리겠지만, Vector 클래스를 정의하여 이 클래스에 해당하는 연산을 정의하여 다음과 같이 사용할 수 도 있습니다.


Vector v1,v2,v3;
v1 = v2 + v3;


위의 코드는 c#코드에서 완벽하게 작동을 하겠지만, IL 에서는 정의되지 않습니다. 만약 연산자를 오버로드 하면 C#컴파일러가 내부적으로 오버로드 된 연산자의 수행과 일치하는 어떤 메소드를 IL코드로 만들고 오버로드된 연산자가 호출될 때마다 그 연산자에 해당하는 IL코드로 만들어진 메소드가 호출될 겁니다.


Professional c# 에 기재된 자료를 발췌해서 말씀드리겠습니다.

1) vb 와 c# 비교

c#은 vb 와 큰 차이점은 c#은 IL로 컴파일이 되지만 VB 는 기계어 코드로 컴파일된다는 점입니다.c#런타임은 c#코드가 다른 프로그래밍 언어로 작성된 코드와 상호작용할 수 있고, 개발자가 닷넷기본클래스가 제공하는 기능을 사용할 수 있다는 점입니다.

c#은 소스가 더욱 간결하며 변수들이 동시에 선언되고 초기화될 수 있습니다. c# 프로그램은 닷넷런타임과 함께 작동하기 때문에 프로그램을 배포할 경우, 닷넷런타임까지 같이 배포해야 하는 어려움이 있죠.

2) VB.NET 과 c#

VB.NET 은 c#이 할 수 있는 모든것을 기술할 수 있으며, 할 수 없는 한가지는 포인터를 사용할 수 없는 단점이 있습니다. 둘다 객체지향을 목적으로 개발된 언어이기 때문에 별 차이점은 없다고 봅니다.

3) java 와 c#

자바가 c#에 지대한 영향을 끼쳤다는 것은 의심의 여지가 없죠.심지어 자바라이브러리와 닷넷기본 클래스들의 구조도 비슷합니다. 물론 둘다 중간언어가 존재하고요. 자바가 c#보다 강력한 장점이 바로 플랫폼 독립성입니다. 자바런타임은
모든 주요 컴퓨터의 플랫폼에 이미 구현되어 있기 때문에 자바 코드는 어디에서나 실행이 가능합니다. 


그럼 c#의 장점은 어떠한게 있을까요? 

c# 은 연산자 오버로딩과 형식 안전한 열거형을 지원하며, 다른 닷넷언어로 작성된 코드와 상호 운용할 수 있고, 닷넷의 기본클래스에는 c#에게 xml, 네트워킹, 그래픽과 같은 공통적으로 요구되는 기능에 관한 통합되고 표준화된 소스를 제공합니다.



posted by 심재운(shimpark@gmail.com)