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
댓글 없음:
댓글 쓰기