C/C++ 호환성을 위해 사용
pointer - unsafe, fixed
struct - stack에 memory allocation
Garbage Collector - heap 관리
Type
- Value type(Built-in type)
- Reference Type : Class Object
- readonly 추가 (const 비슷함)
전달법
- Call by Value (Value Copy)
- Call by Reference (ref, out)
Class 추가 기능
Access Identifer 추가
- internal
- protected internal
Property 추가 (set, get) - set 인자 value
sealed - 상속금지
Overriding-
-- new public void Method() 활용법
-- base : 상위접근
Polymorphism
-- abstract // overlide
-- Interface
-- Upcasting (객체의 묵시적 캐스팅)
Casting
-- Object 형? - 모든 object가 가지는 최상위 class
-- Boxing : value -> ref 변환 // UnBoxing
Delegate
-- 활용? 함수포인터 // 쓰레드/이벤트 제어 --> 캡슐화
계약적 다형성 (Contract)
-- Interface활용 ( 빌더 패턴과 유사? )
배열 생성법
int[] name = new int [10];
배열 선언후에는 하나씩 할당하는 방법이외에 다른 방법은 없다.
int[] ref = ref2; (참조값이 할당됨 유의)
-- value array
-- object array - 메모리 할당 필요
다차원 배열
int[,] myarray = new int[4,3];
가변 배열 (Jagged Array)
int[][] jagarray = new int[3][]; // matrix 표현 불가능
jagarray[0] = new int[10]; 하부열 할당필요
배열의 property
Length, Rank(차원의 수)
배열 지원 함수 -> System.Array [ICloneable, IList, ICollection, IEnumerable]
복사 방법 Copy(), Clone() [ 일부, 전체 복사 ]
foreach
- Array, Collection에서 활용 ( foreach(int i in array)
- 읽기전용 / 검색전용 제어문 ( Iterator )
Indexer
public object this[int index]{ get{} set{} }
문자열
string - 수정 불가 -> 대체안 : StringBuilder - 문자열 조작의 cost time을 기하급수적으로 줄여준다.
C/C++ 차이점
묵시적 캐스팅 - 무조건 에러
if에 조건식이 없거나 true, false 결과값이 없다 - 무조건 에러
다중 상속 불가 - interface를 활용한 샛길
함수포인터 활용 - delegate
C++의 STL? -> System.Collections
C++의 RTTI? -> System.Reflaction
C++의 Console IO? -> System.Console
댓글 없음:
댓글 쓰기