C 샤프
| C sharp logo.png | |
| 패러다임 | 객체 지향, 명령형, 함수형, 절차적, 제네릭, 리플렉션, 이벤트 지향 |
|---|---|
| 개발 | 마이크로소프트 |
| 발표일 | 2000년 |
| 웹사이트 | https://docs.microsoft.com/ko-kr/dotnet/csharp/ |
C#(C Sharp, 시 샤프)는 마이크로소프트에서 개발한 객체 지향 프로그래밍 언어로, 닷넷(.NET) 이니셔티브의 일부로 개발되었다. C++와 자바의 문법과 비슷하며, 강력한 형식 시스템과 자동 메모리 관리(가비지 컬렉션) 기능을 제공한다.
개요
C#은 ECMA(ECMA-334)와 ISO(ISO/IEC 23270)의 표준을 따르는 언어이다. 마이크로소프트의 앤더스 헤일스버그(Anders Hejlsberg)가 설계를 주도했다. 초기에는 Cool(C-like Object Oriented Language)이라는 코드명으로 불렸으나, 후에 C#으로 명명되었다. 'C#'이라는 이름은 음악의 올림표(샵)에서 유래했으며, C++보다 한 단계 더 높다는 의미를 내포하고 있다. (C++++를 겹쳐서 샵 모양으로 만든 것이라는 설도 있다.)
특징
- 완전한 객체 지향: C#은 모든 것이 객체로 취급되는 완전한 객체 지향 언어이다.
- 안전성: 포인터 사용을 제한하고(unsafe 블록에서만 허용), 엄격한 자료형 검사를 통해 프로그램의 안정성을 높였다.
- 자동 메모리 관리: 가비지 컬렉터를 통해 사용되지 않는 메모리를 자동으로 해제한다.
- 상호 운용성: 다른 .NET 언어들과 상호 운용이 가능하며, COM 객체와의 연동도 지원한다.
- 버전 발전: 지속적인 업데이트를 통해 제네릭, 람다 식, LINQ, 비동기 프로그래밍(async/await) 등 현대적인 프로그래밍 기능들이 추가되었다.
예제
다음은 C#으로 작성한 Hello World 프로그램의 예제이다.
using System;
namespace HelloWorld
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello, World!");
}
}
}
버전
| 버전 | 발표 년도 | .NET 버전 | 주요 기능 |
|---|---|---|---|
| 1.0 | 2002년 | .NET Framework 1.0 | 관리되는 코드, 클래스, 구조체, 인터페이스, 델리게이트 |
| 2.0 | 2005년 | .NET Framework 2.0 | 제네릭, 익명 메서드, 이터레이터, nullable 형식 |
| 3.0 | 2007년 | .NET Framework 3.5 | 람다 식, 확장 메서드, 익명 형식, LINQ |
| 4.0 | 2010년 | .NET Framework 4.0 | dynamic 키워드, 명명된 인수, 선택적 인수 |
| 5.0 | 2012년 | .NET Framework 4.5 | 비동기 프로그래밍 (async/await) |
| 6.0 | 2015년 | .NET Framework 4.6 | 문자열 보간, 식 본문 멤버, null 조건 연산자 |
| 7.0 | 2017년 | .NET Framework 4.6.2 | 튜플, 패턴 매칭, 로컬 함수 |
| 8.0 | 2019년 | .NET Core 3.0 | nullable 참조 형식, 비동기 스트림, 기본 인터페이스 멤버 |
| 9.0 | 2020년 | .NET 5.0 | 레코드, 최상위 문 |
| 10.0 | 2021년 | .NET 6.0 | 전역 using, 파일 범위 네임스페이스 |
| 11.0 | 2022년 | .NET 7.0 | 원시 문자열 리터럴, 제네릭 수학 |
| 12.0 | 2023년 | .NET 8.0 | 기본 생성자, 컬렉션 식 |