Software Architect/C#

1.     C#의 키워드

a.     c# 프로그램의 일부에서 예약 식별자인 키워드

b.     컨텍스트 키워드

                       i.        코드에서 특정 의미를 지정하는데 사용

                      ii.        partial where와 같은 일부 컨텍스트 키워드는 둘 이상의 컨텍스트에서 특별한 의미를 가짐

 

2.     자료형 및 변수 및 상수

a.     변수

                                   i.        변하는 수

                                  ii.        숫자 값, 문자열 값 또는 클래스 개체

a.     변수에 저장되는 값은 변경 가능하지만 변수 이름은 그대로 유지

b.     특정 데이터형식과 레이블을 사용하여 선언

c.     변수가 int, float, byte, short를 비롯한 20여가지

d.     변수의 정의규칙

                       i.        유니코드 문자를 사용

                      ii.        _ 또는 $로 시작할 수 없음

                     iii.        숫자나 특수문자로 시작할 수 없고 대소문자 구분

                     iv.        c#키워드는 변수명으로 사용할 수 없음

e.     상수의 정의 규칙

                       i.        상수 = 변하지 않는 수

                      ii.        선언과 동시에 초기값 할당

                     iii.        const키로 선언

                     iv.        상수를 사용하여 코드를 읽기 쉽게 만들 수 있음

                      v.        상수에 저장되는 값은 컴파일 때 한번만 정의 가능

 

3.     내장형 데이터 형식과 객체

a.     system.object로 부터 상속받은 객체

                       i.        bool equals() : 같은 객체인지 비교

                      ii.        int GetHashCode() : 해쉬 값을 얻음

                     iii.        Type GetType() : 형식 정보를 얻음

                     iv.        string ToString() : 객체를 대표하는 문자열 반환

 

4.     c#의 타입

a.     값 타입

                       i.        값 형식 변수 하나를 다른 변수에 대입하면 변수에 포함된 값이 복사되고

                      ii.        모든 값 형식은 암시적으로 System.ValueType에서 파생

                     iii.        참조형식과 달리 값 형식에서는 새 형식을 파생할 수 있음

b.     구조체

                       i.        클래스와 동일하나 제한적임

                      ii.        구조체로부터 만든 개체를 ㅂ녀수에 할당하면 변수는 구조체의 전체 값을 포함함

1.     구조체는 값 형식이고, 클래스는 참조

2.     클래스와 달리 new 연산자를 사용하지 않고 인스턴스화 가능

3.     생성자를 선언할 수 있으나 반드시 매개변수를 사용해야 함

4.     System.Object를 상속하는 System.ValueType에서 직접 상속함

5.     인터페이스 구현 가능

6.     nullable 형식으로 사용할 수 있고,  null값 할당 가능

c.     값 타입의 enum

                       i.        enum(열거형)

1.     value Type를 상속받은 enum은 해당 내부 형식이 char를 제외한 정수 계열 형식인 명명된 상수

2.     클래스의 인스턴스를 비교

3.     인스턴스의 값을 문자열 표현으로 변환, 숫자의 문자열 표현을 클래스의 인스턴스로 변환함

4.     열거자는 공백이 포함 될 수 없음

d.     참조타입(reference type)

                       i.        종류

1.     자기 설명형식

a.     배열형식

b.     클래스 형식

2.     포인터 형식

3.     인터페이스 형식

                      ii.        값 타입

1.     값 타입 변수는 할당된 메모리 영역에 직접 저장함

                     iii.        참조 타입

1.     할당된 메모리영역에 실제 데이터에 대한 참조를 저장함

2.     데이터는 별도의 메모리 영역에 저장됨

e.     박싱 / 언박싱

                       i.        박싱

1.     가비지 수집되는 힙에 값 형식을 저장하는데 사용됨

2.     .boxing은 값 형식의 object 형식 또는 이 값 형식에서 구현된 임의의 인터페이스 형식으로 변환하는 암시적 변환

                      ii.        언박싱

1.     object 형식에서 값 형식의 명시적 변환

2.     unboxing 연산과정

a.     개체 인스턴스가 지정한 값 형식을 boxing한 값인지 확인함

b.     인스턴스의 값을 값 형식 변수에 복사

 

5.     C#의 연산자

a.     기본 연산자

                       i.        안전하지 않은 코드 연산자 : sizeof 연산자

1.     sizeof 연산이 가능한 형식 : 값 형식

2.     unsafe 연산

                      ii.        안전하지 않은 코드의 속성

1.     메서드, 형식 및 코드 블록을 안전하지 않은 것으로 정의

2.     사용시 배열 범위를 검사하지 않음

3.     포인터가 필요한 네이티브 함수를 호출하는 경우에 필요

4.     보안과 안전성이 위험해질 수 있음

b.     쉬프트 연산자

                       i.        비트별 연산이 필요한 경우와 2 n제곱배 곱셈이 필요한 경우 사용되는 연산자

c.     조건 연산자

                       i.        간단한 if - then - else의 경우 조건 연산 사용

                      ii.        조건의 참, 거짓에 따라 다른 값 가짐

 

신고
0 0