C#은 마이크로소프트에서 개발한 객체 지향 프로그래밍 언어이다.
원래 이름은 C-like Object Oriented Language 줄여서 Cool 이었다고 한다~ㅋㅋ
닷넷 프레임워크의 한 부분으로 만들어졌으며 나중에 ECMA (ECMA-334)와 ISO (ISO/IEC/23270)의 표준으로 자리잡았다.
.NET CORE
데스크톱 앱 & XAMARIN
모바일 앱 & BLAZOR
웹앱 & UNITY
비디오 게임을 만드는데 주로 사용된다.
C++, 자바의 문법과 비슷하다.
객체 지향 언어다.
기능적 Lamda 식을 제공
LINQ 기능 : 모든 데이터 구조에 대한 선언적 쿼리
포인터로 자신의 메모리를 할당하려는 경우, 안전하지 않은 컨텍스트를 생성할 수 있지만 가비지 수집 덕분에 메모리 관리에 안전하다.
개발자는 C#, VB.NET, 다른 .NET 언어들을 통해 프로그램을 개발한다.
VS(Visual Studio)로 소스코드를 컴파일하면 VS는 CIL(Common Intermediate Language)이라 불리는 바이트 코드를 생성한다.
사용자가 프로그램 컴파일 후 실행을 시키게 되면 VS는 바이트코드를 Native Code로 컴파일한 후 실행을 시킨다.
이 때, CLR은 CIL 코드를 읽어들여 OS가 이해할 수 있는 Native Code로 변환하는 역할을 한다.
왜 .NET은 소스코드 -> CIL -> Native Code의 과정을 거칠까?C, C++의 경우 개발환경에 많은 영향을 받는 경향이 있다. 그러나 Java가 나오면서, 컴파일된 바이트코드는 어떤 실행환경이든 간에 JVM 실행만 가능하다면 실행이 된다는 장점을 가지고 인기를 끌게 되었다.
마이크로 소프트 또한 이러한 문제점을 보완하기 위해 .NET 프레임워크에 가상머신을 추가하게 되었고, 이로인해 C# 뿐만 아니라 다른 언어로 개발된 IL들은 .NET Framework가 설치된 어떠한 환경에도 실행을 시킬 수 있게 된 것이다.
.NET Framework
에서 제공되는 C# 컴파일러인 csc.exe
를 이용하여 실행파일을 생성할 수 있다.C# 프로그래밍을 위한 개발도구로 일반적으로 Visual Studio (VS)를 사용한다.
VS는 IDE (Integrated Development Environment)로서 소스 편집기, 빌드, 디버깅, 인텔리센스 등 편리한 개발 기능을 제공하는 통합 개발도구이며, C# 이외의 다양한 프로그래밍 언어들을 지원한다.
namespace Intro_Ex1
{
class Program
{
static void Main(string[] args)
{
System.Console.WriteLine("Hello World...");
}
}
}
Main()
이라는 시작 함수(메서드)를 가져야 한다. Main()
메소드는 임의의 클래스 안에서 존재하며, 프로그램 상에 단 1개만 있어야 한다.Main()
는 static으로 선언되며, 메소드 인자는 string[]
문자열이다.System.Console
은 .NET Framework 클래스이며, WriteLine
은 화면에 데이터를 Console에 출력하는 메서드이다.C# 에서 코멘트를 사용하기 위해서는
(1) 한 라인에 대해 코멘트 : //
(2) 복수 라인 코멘트 : /* */
namespace Intro_Ex2
{
class Program
{
static void Main(string[] args)
{
// 코멘트: 한 라인 코멘트는 두개의 슬래시 사용함
int a = 1;
int b = 1; // 코멘트: 하나의 문장 뒤에 코멘트를 달 수 있음
/*
복수 라인에 대한 코멘트
int c;
int d;
*/
}
}
}
위키백과_C 샤프
C# in 100 Seconds
[.NET]C# CLR(공통 언어 런타임), CIL(공통 중간언어)
[예제로 배우는 C# 프로그래밍]기초문법 - C#프로그래밍 언어