공부/C#

기초 문법

도이도2 2021. 1. 26. 18:22

참고 : 예제로 배우는 C# 프로그래밍(www.csharpstudy.com/CSharp/CSharp-intro.aspx)


< 프로그래밍 언어 >

개념

: 마이크로소프트에서 개발된 객체 지향 프로그래밍 언어.

: .Net Framework를 이용하여 프로그래밍하는 대표적인 언어.

: .cs라는 확장자 사용

: C++과 다르게 별도의 헤더 파일 없음

 : Visual Studio / csc.exe

 

시작 예제

 : 모든 C# 프로그램은 Main()이라는 시작 함수(메소드)를 가져야 함

 : Main() 메소드는 임의의 클래스 안에서 존재하며, 프로그램 상에 단 1개만 있어야 함

 : Main()은 static으로 선언되며, 메소드 인자는 string[] 문자열


< 데이터 타입 >

 : .NET 데이터 타입 사용

 : 내부적으로 C# 컴파일러는 C# 키워드로 된 데이터 타입을 컴파일한 후, .NET 데이터 타입으로 변경

 

리터럴 데이터

 : 값을 직접 써주면 리터럴(Literal)이라고 함

 : C#에서 리터럴 데이터를 사용할 때, 별도의 접미어 표시(Suffix)가 없는 경우 C# 컴파일러는 데이터 타입(int, double, char, string, bool)에 기본적으로 값을 할당함

 : 특정 데이터 타입을 지정하고 싶으면 리터럴 데이터 뒤에 1~2자의 타입 지정 접미어를 추가해야 함

 : 접미어(Suffix)는 대소문자 구분 없음

 

Nullable Type

 : 정수(int)나 날짜(DateTime)는 일반적으로 NULL을 가질 수 없음

 : NULL을 가질 수 있게 한 게 Nullable Type

 : C#에서 물음표를 int나 DateTime 뒤에 붙이면  Nullable Type이 됨

 : 컴파일하면 .NET의 Nullable<T> 타입으로 변환됨

 : 일반 타입으로 변경하려면 .Value 속성 사용


< 배열(Array) >

 : 동일한 데이터 타입 요소들로 구성된 데이터 집합

 : 인덱스를 통하여 각각의 배열요소(Element)에 접근할 수 있음

 : 첫번째 요소가 인덱스 0

 : C#은 최고 32차 배열까지 가질 수 있음

 : 2차 배열부터는 다차원 배열

    (1) Rectangular 배열 : 각 차원별 요소 크기 고정 

    (2) 가변 배열 : 각 차원별 크기가 서로 다름

 

Rectangular 배열

 : [,]와 같이 괄호 안에 콤마로 분리하여 다차원 표현(C 스타일)

가변 배열

 : [] []와 같이 각 차원마다 괄호를 별도로 사용(Java 스타일)

 : 배열의 배열이라고 불림

 : 첫번째 차원의 크기는 컴파일 타입에 확정되어야 하고, 그 이상 차원은 런타임시 동적으로 서로 다른 크기의 배열로 지정할 수 있음

 

배열 전달

 : 배열 전체를 전달하기 위해서는 보내는 쪽에서 배열명을 사용하고, 받는 쪽에서 동일한 배열 타입의 배열을 받아들이면 됨

 : 배열은 참조형(Reference Type)이기 떄문에 배열을 다른 객체나 메소드에 전달할 때, 배열 전체를 가리키는 참조값만 전달