본문 바로가기
Language/C#

[ C# ] C# 기본 문법

by 신인용 2020. 9. 2.
반응형

 

C# 기본 문법

 

 

1. 연산자

- 단항 연산자

+, -, !, ~, ++, --

!bool형에만 사용

 

- 산술 연산자

*, /, %, -, +

string에서 +는 문자열 연결

“5” + “5” = 55

5.01f + "5" = 문자열 5.015

3.14f + "5" = 문자열 3.145

 

- 시프트 연산자와 관계 연산자

<<, >>, >=, <=, >, ==, !=

관계 연산자의 결과는?

true, false

 

- is 연산자

형식 호환을 조사하는 연산자

형식

 ‘변수’ is ‘클래스형 or 데이터형

      A is B

 결과는 true, false

 박싱/언박싱 변환, 참조 변환에서 사용

결과값 :

호환 안 됨

호환됨

호환됨

 

 

 

- as 연산자

역할

 형변환과 변환 조사

 캐스트 연산자의 역할과 불변환은 null 리턴

참조, 박싱, 언박싱, null형에 사용

형식

 결과형 = 참조형, 언박싱, 박싱 as 변환형

결과값:

123

형변환 실패

 

 

 

- 비트 연산자와 논리 연산자

&, ^, \, &&, \\, ? :

 

- null 병합 연산자

?? (null 조사)

C = A ?? B

 Anull이 아니면 AC에 대입

 Anull이면 BC에 대입

 

 

 

 

 

2. 제어문

- 선택문

if ~ else

 

switch, case

 정수, 문자상수, 문자열

 모든 casedefault에는 break가 반드시 있어야함

결과값: yes입니다.

 

 

 

 

- 반복문

for

while, do~while

 while(true) -> while(1)은 안됨.

 

foreach

 처음부터 끝까지 순차적을 값을 반복하여 읽는 역할 -> 읽기 전용

foreach(데이터형 변수 in 배열명(컬렉션명)){ ... }

결과값:

1

2

3

4

 

 

 

 

Collections (ArrayList)

결과값:

1

2

3

 

 

 

- 점프문

goto, continue, return, break

 ->마이크로소프트 코드를 보면 goto가 은근히 많이 발견됨. 반복문을 빠져나오기 위해 여러 줄의 코드를 쓰는 것보단 goto를 쓰는 것이 더 효율적. goto는 안 좋은 거라 배웠지만 시대는 바뀐다~

 

 

- 예외 처리문

예외란?

 런타임 시에 발생할 수 있는 오류

예외 처리 방법

 if ~ else

 try ~ catch 문 사용

 

- try ~ catch

try{

    //예외가 발생할 수 있는 코드

} catch(예외처리객체 e){

    //예외처리

}

 

System.Exception 파생 객체만 사용

 

System.Exception 파생 객체

 OverFlowException,

 FormatException,

 DivideByZeroException,

 FileNotFoundException,

 IndexOutOfRangeException

 

(참고) try ~ catch 문 안에서 초기화한 변수를 try문 밖에서 사용할 수 없다.

 

 

- try ~ finally

예외 발생과 상관없이 항상 실행되는 구문

 

 

- 다중 예외처리

try{

    ...

} catch( ... e){

    ...

} catch( ... e){

    ...

}

 

 

- throw

예외 상황을 임의로 발생시키는 역할

System.Exception 파생된 객체만 사용

try문과 그 외에서 사용가능

결과값: Error

 

 

 

 

 

반응형

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

[ C# ] 배열  (0) 2020.09.02
[ C# ] 데이터형, 변환, 표준 입력형식  (0) 2020.09.01
[ C# ] C# 프로그래밍의 기본 구조  (0) 2020.09.01
[ C# ] .NET Framework와 C#언어  (0) 2020.09.01
[ C# ] StopWatch 구현  (0) 2019.08.12

댓글