본문 바로가기
반응형

c#56

MFC C# 문자열 자르기 비교 - CString String Mid, Left, Right MFC(CString class)에서 Left, Mid, Right를 사용하여 문자열 자르기하는 방법은 아래와 같습니다. MFC (CString) Samples: 12345678910CString somestring = L"ABCDEFG"; somestring.Left(3) == L"ABC" somestring.Mid(2,3) == L"CDE"somestring.Mid (2) == L"CDEFG" somestring.Right(3) == L"EFG" The index starts at 0 (MFC and C#), so nIndex=2 means the 3rd char!cs C#의 Substring()과 비교하면 이렇습니다. 두 언어의 문자열 자르기 비교표입니다. MFC (CString) C# (strin.. 2017. 3. 7.
C# Sealed 클래스는 왜 빠를까? 최적화에 필요한 이유 컴파일러는 낮은 레벨에서 C# sealed 클래스를 micro-optimization 할 수 있습니다. 컴파일 타임에 C# sealed 클래스에 함수를 호출하면 callvirt IL 명령어 대신 IL 명령어를 사용합니다. C# sealed 클래스의 함수는 오버라이드 되지 않음.가상 함수 테이블 검사 과정을 생략.가상 함수 테이블은 조회 시간이 상대적으로 짦음.callvirt 보다 속도에서 유리함. 이렇기에 성능이 조금 좋아집니다. 최적화 중이라면 적용하세요. 즉, 다형성을 잃어버린 클래스라 선언했기에 컴파일러는 여러 검사 과정을 생략합니다. (확장되지 않는 클래스) 예를 들어, non-sealed 클래스에 makeNoise()란 함수가 있을 때, 이 함수의 재정의 여부는 알 수가 없습니다. 함수 재정의 .. 2017. 3. 5.
C# 스레드풀 예제, Thread pool + Action + Using 스레드풀 전체 소스를 소개합니다. 출처는 기억이 안 나는데, 아마도 스택 오버플로우일 겁니다. 프로젝트 압축 파일 C# 쓰레드풀 예제 프로젝트 - 아래는 스레드풀 메인 클래스인데, Action을 이용해 랜덤한 스레드 시작과 종료 코드를 실행합니다. 5번째 라인의 thread pool 클래스에서 실제 스레드 객체도 생성합니다. 1234567891011121314151617181920212223static void Main(string[] args){ using (var pool = new Pool(5)) // size { var random = new Random(); Action randomizer = (index => { Console.WriteLine("{0}: Working on index {1}".. 2017. 3. 3.
C# List RemoveAll 사용법, 리스트 삭제 람다 문법 예제 C# List의 RemoveAll() 함수는 사용자 정의 조건에 맞는 모든 요소를 제거합니다. 123public int RemoveAll( Predicate match)cs 아래 두 개의 예제를 통해 C# List 요소를 제거하는 몇 가지 방법을 소개합니다.리스트 삭제는 개별 요소, 전체 요소, 값으로 지우기 등 여러가지 방법이 있습니다. C# List RemoveAll 첫번째. Remove(), RemoveAt(), RemoveRange(), RemoveAll() + 람다 1234567891011121314151617181920212223List words = new List(); words.Add("A");words.Add("B");words.Add("C");words.Add("D");words.Ad.. 2017. 3. 2.
반응형