Programming/C#(17)
-
StringBuilder Capacity
String 연산 시 StringBuilder의 사용이 더 효용적이라는 것은 개발자들 사이에선 이미 진리로 자리잡았다. 그럼 StringBuilder는 어떻게 사용해야 되는 것일까? 대부분 아래와 같이 StringBuilder 객체 생성 후 Append 하여 사용하는 경우가 많을 것이다.StringBuilder sb = new StringBuilder(); for(int i = 0; i < 10; i++){ sb.Append(str[i]); } 하지만 위와 같은 방식은 그리 좋지 못하다. 기본적으로 StringBuilder 객체 생성 시 내부적으로 16 bytes의 버퍼 크기를 가진다. 만약 Append 시 16 bytes 이상의 문자열이 입력으로 들어왔다면, StringBuilder 내부에서는 버퍼를 ..
2013.08.12 -
sqlite 특수문자 에러
sqlite를 쓰다 보니 입력 쿼리에 ' '' 로 바꿔주면 된다.C# 코드query = query.Replace("'", "''"); 에러는 발생하지 않지만, 매 쿼리마다 다 저렇게 replace를 해주려니.... 먼가 찝찝..
2013.08.08 -
JSON 사용하기2
이전 포스팅에서 설명한 방법대로 C#에서 JSON을 사용해도 무방하지만 해당 경우는 반드시 MemoryStream을 이용해야 하는 경우이다. String으로 받은 JSON 문자열을 일일이 parsing 해 주지 않고 객체로 변경할 수 없을까? 하는 고민에 빠져있던 중 괜찮은 JSON Library 발견!! JSON for .NET 사용 방법은 아래와 같다.
2013.02.20 -
JSON 사용하기
C#에서 JSON을 객체로 변경할 수 있는 많은 library가 있지만.. 일단 .NET Framework에서 제공하는 reference를 사용하기로 한다. JSON은 .NET Framework 3.5 이상부터 제공하는 기능으로 아래 두 개의 reference를 참조해야 한다. System.ServiceModel.Web System.Runtime.Serializations 그 후 아래와 같은 sample code 작성!
2013.02.19 -
BadImageFormatException 발생
C++ dll을 C#에 import 시킨 후 ctrl + F5 시키니 처리되지 않은 예외: System.BadImageFormatException: 프로그램을 잘못된 형식으로 로드하려고 했습니다. (예외가 발생한 HRESULT: 0x8007000B) 위와 같은 에러 메시지 발생!!아나 저건 모야...찾아보니 dll의 build 플랫폼과 C# 프로젝트의 플랫폼을 맞춰야 한단다...프로젝트 속성에서 플랫폼과 플랫폼 대상을 x64로 맞춰준 후 build 성공!!
2013.02.18 -
디렉토리 내 폴더 삭제하기.
폴더 내에 디렉토리와 폴더가 섞여 있을 때 파일만 지울 경우가 있다. (왜???) 마음 같아서는 아래와 같이 해서 폴더를 통째로 날려버리고 싶지만.. DirectoryInfo dir = new DirectoryInfo(path); dir.Delete(true); // false로 할 경우 하위 폴더와 폴더 내의 파일들은 삭제가 안된다. 폴더 내의 파일만 삭제해달란 요청이 있어서 아래와 같이 실행하였다.
2013.02.13