본문 바로가기

IT/C#

001 C# 이란?

C#?

"C#(시 샤프)는 마이크로소프트에서 개발한 객체 지향 프로그래밍 언어로, 닷넷 프레임워크의 한 부분으로 만들었으며 나중에 ECMA (ECMA-334)와 ISO (ISO/IEC/23270)의 표준으로 자리잡았다. C++와 자바와 비슷한 문법을 가지고 있다."



C

- 메모리 관리, 포인터 연산, 구조적 언어


C++ 

- OOP(캡슐화(Encapsulation), 상속(Inheritance), 다형성(Polymorphism))의 특징을 가지게 됨

but C의 메모리 관리, 포인터 연산의 단점을 벗어나지 못함


Java

- C++의 문법적 번거러움 제거

- 100% 순수 Java응용프로그램 개발 가능

- 모든 요구에 대응하는 단일한 프로그래밍 언어 를 목표

- 그래픽, 연산중심의 응용프로그램에는 C++ 같은 lower Level의 언어 사용이 더 나음

- Package


.NET 

"지금 이 순간부터 모든 것을 바꾸자"


특징

- CLR(Common Language Runtime) 공용 언어 런타임

 : 프로그래머를 대신해서 .NET 형식(type)들의 위치를 지정하고 이 형식들을 로드하고 관리하는 것

메모리 관리, 언어 통합, 형식 안정성 보장 등 하위 레벨의 다양한 세부사항  처리

- CTS(Common Type System) 고용 형식 시스템

: 모든 데이터 형식과 런타임에 지원되는 프로그래밍 구조가 완전하게 기술되어 있고, 이 항목들이 어떻게 상호작용하고, .NET 메타 데이터 포멧에는 어떻게 나타나는지 정의

- CLS(Common Language Specification) 공용 언어 사양

:  .NET 프로그래밍 언어가 호응할 수 있는 프로그래밍 구조와 공용 형식들을 정의한 일련의 규약


- 포인터 x

- 자동 메모리관리

- 열거형(enumeration), 구조체(Structure), 클래스 속성(Class Property)도 공식 문법 구조에 포함된다.

- C++에서와 같이 사용자 지정 형식 연산자를 쉽게 오버러드 할 수 있다.

- 인터페이스 기반 프로그래밍 기술 완벽 지원

- 어트리뷰트를 이용한 aspect 기반 프로그래밍 기법 완벽 지원


'IT > C#' 카테고리의 다른 글

C# 004  (0) 2017.03.23
C# 003 (컬랙션, 싱글톤)  (0) 2017.03.22
C# 002  (0) 2017.03.21
사전 과제 C#  (0) 2017.03.15
[C#] Virtual(가상) vs Abstract(추상) vs Interface(인터페이스)  (0) 2017.03.08