2010년 10월 27일 수요일

C# 공부한거 정리 #2

Collection

 

IEnumerable

IEnumerator - 내부 데이터 접근 Interface (Iterator)

-- Current

-- MoveNext()

-- Reset()

ICollection

-- int Count - 객체 수

-- bool IsSynchronized - 접근 동기화

-- object SyncRoot - 스레드에서의 동기화 객체 반환

-- void CopyTo - Collection -> Array

IList Property

- IsFixedSize - 고정 길이 리스트 체크

- IsReadOnly - 읽기전용 체크

- this[index] - 인덱서

IList Method

- Add(object) - 추가

- Clear() - 싹다제거

- Contains(object) - 존재 체크

- Indexof(object) - 위치반환

- Insert(index, object) - 데이터 삽입

- Remove(object) - 객체 제거

- Remove(index) - 그 위치 객체 제거

IDictionary Property

- IsFixedSize

- IsReadOnly

- Keys - 키 전부 나열 - 키는 유일해야 한다

- Values - 값 전부 나열

IDictionary Method (e.g. Hashtable)

- Add(key, value)

- Clear

- Contains(key) - 연관성 검사

- GetEnumerator() - 나열을 위해 인터페이스 반환

- Remove(key) - 키로 지움

IDictionaryEnumerator Property

- DictionaryEntry - 키, 값 반환

- object Key - 키 반환

- object Vaule - 값 반환

 

 

 

대표적 Collection

- ArrayList  - vector

- Hashtable  - map ( object, value )

- SortedList - key기준 정렬, key검색활용

- Queue - Enquere(), Dequeue()활용

- Stack

- NameValueCollection

---- System.Collections.Specialized

---- String, String 형 맵

 

 

 

 

Generic

- 초기의 C# : Object의 Upcasting을 활용하여 제너릭이 필요가 없었다.

- 제너릭 도입 이유 : 형식 안정성, Object : 캐스팅 낭비 없앰, Value : Boxing/UnBoxing 부하가 없음

 

Collection의 Generic변환

ArrayList -> List<T>

Hashtable -> Dictionary<T>

SortedList -> SortedDictionary<T>, SortedDictionary<K, V>

Stack -> Stack<T>

Queue -> Queue<T>

 

Exception

finally : 예외처리 여부와 상관없이 무조건 실행되는 문장

 

Stream

- I/O stream

- File stream

---- File, Directory - static ( 객체 생성할수 없다 )

---- FileInfo, DirectoryInfo -  객체 생성 활용 가능

FileInfo fi = new FileInfo(@"c:\test\a.txt"");

fi.CopyTo(@"c:\test\b.txt\");

 

File Class (public sealed class ), using System.IO

File.Copy(src, dest, overwritted여부(true/false))

bool exist = File.Exists(src);

DateTime dt = File.GetCreationTime(src);

 

 

 

- File Class

OpenRead(src);

OpenText(src);

OpenWrite(src); 등등

접근 방식

StreamReader r = new StreamReader (fs, System.Text.Encoding.Default);  // 문자스트림 변환

r.BaseStream.Seek(0, SeekOrigin.Begin); // 커서 위치를 첫부분으로

r.Peek() == -1 // EOF check

r.ReadLine() -> 파일스트림에서 Line단위 읽기

r.Write(byte[], 0, byte[].Length)

 

r.Flush();

r.Close() -> 스트림 닫기

 

SeekOrigin 열거형 상수 - Begin, Current, End

 

- Directory Class

 디랙터리 생성, 이동, 삭제등을 위한 Class

- Path class

파일 디렉토리 경로 확장, 변경 수정 클래스

 

 

- BuffedStream

Default : 4096 Bytes

 

- MemoryStream

메모리 대상 Stream

 

- BinaryReader, BinaryWriter

데이터 타입의 크기만큼 데이터를 저장 & 읽을때 사용하는 스트림 ( FileStream의 데이터 단위 스트림 )

 

- TextReader, TextWriter

문자 스트림 입출력관장 최상위 추상 클래스

 

- StringReader & StringWriter

public class StringReader : TextReader

public class StringWriter : TextWriter

 

- StreamReader & StreamWriter

ByteStream->CharacterStream

 

 

 

 

 

 

 

 

 

 

댓글 없음:

댓글 쓰기