C# - System.Lazy

System.Lazy ? System.Lazy 는 지연 초기화를 지원하는 클래스이다. .NET Framework 4.0 에서 추가 사용하는 경우 멀티 스레드 환경에서 공유 리소스의 초기화를 스레드 세이프하게 하고 싶을 때 초기화에 시간이 걸리는(또는 많은 하드웨어 자원을 사용하는) 클래스가 있을 때 이것을 사용할지 안할지 알...
더 읽기

C# - string

문자열의 마지막에 있는 \r\n 제거 하기 Text2.TrimEnd(Environment.NewLine.ToCharArray()); 지정 단어로 문자열 분해 string readLine = "A=B"; string[] word = readLine.Split(new Char[] { '=' }); string[] stringSeparators = new string[] {"[#@#]"}; var TokenString = logdata.Split(stringSeparators, StringSplitOptions.RemoveEmptyEntries); ##문자열 포맷 string CheatString = string.Format("@timeevent1:{0}",...
더 읽기

C# - Simple Winform Logger

로그 클래스. DevLog // public enum LOG_LEVEL { TRACE, DEBUG, INFO, WARN, ERROR } public class DevLog { static System.Collections.Concurrent.ConcurrentQueue<string> logMsgQueue = new System.Collections.Concurrent.ConcurrentQueue<string>(); static LOG_LEVEL 출력가능_로그레벨 = new LOG_LEVEL(); static public void Init(LOG_LEVEL logLevel) { 출력가능_로그레벨 = logLevel; }...
더 읽기

C# - SharpSVN

설명 닷넷에서 SVN을 조작하기 위한 라이브러리 SVN 서버의 버전과 맞추어야 한다. 공식 홈페이지는 http://sharpsvn.open.collab.net/ 1.7, 1.8 용은 NuGet으로 받을 수 있다. SharpSVN 라이브러리는 32비트,64비트로 나누어지는데 선택에 따라서 명시적으로 프로젝트의 32 or 64비트를 결정해야한다. AnyCPU로 하면 빌드 시 경고 발생. 사용...
더 읽기

C# - IDisposable

개요 Disposable.Create() 로 IDisposable을 모을 수 있다. 컨테이너(IDisposableContainer)를 만들고 IDisposable한 인터페이스를 .AddTo(container)로 등록한다. public sealed class Resource : IDisposable { private readonly string name; public Resource( string name ) { this.name = name; } public void Dispose() => Console.WriteLine( "Disposed."...
더 읽기

C# - 날짜와 시간

MSDN의 날짜 포맷 https://msdn.microsoft.com/en-us/library/az4se3k1.aspx 현재 시간 중에서 시간:분(09:01)으로 얻고 싶을 때 DateTime.Now.ToString("hh:mm") // for non military time DateTime.Now.ToString("HH:mm") // for military time (24 hour clock) C#에서 String 형식으로 넘어온 날짜와 시간 데이터를 Datetime 형식으로 형변환 하기 // 출처:http://blog.naver.com/doghole/100117144255 string sDate...
더 읽기

C# - IPC

참조에 System.Runtime.Remoting을 추가한다. IPC로 통신할 데이터 객체 public class RemoteObject : MarshalByRefObject { static Queue<string> ClientMessage = new Queue<string>(); static Queue<string> ServerMessage = new Queue<string>(); public void ServerToClient(string msg) { ClientMessage.Enqueue(msg); } public void ClientToServer(string msg) { ServerMessage.Enqueue(msg); } public...
더 읽기

C# - Linq

기본 Linq는 아래의 2개의 데이터 소스를 대상으로 한다. IEnumerable 주로 온 메모리 데이터 소스를 나타내는 Interface LINQ to Object, LINQ to XML IQueryable 주로 외부 데이터 소스를 나타내는 interface LINQ to SQL, LINQ to Entity Where 조건을 만족하는 요소를 추출...
더 읽기

C# - 메모리

스택할당 stackalloc 키워드를 사용하면 지역 변수에 한해서 스택 할당을 할 수 있음 해당 함수를 벗어나면 메모리는 삭제된다. unsafe 기능으로 사용할 수 있다. MSDN 문서 http://msdn.microsoft.com/ko-kr/library/cx9s2sy4.aspx http://msdn.microsoft.com/ko-kr/library/aa664785(v=vs.71).aspx C#에서 포인터 사용하는 방법 http://rkddlsghk98.blog.me/30160902176 동적 메모리 할당 MSDN http://msdn.microsoft.com/ko-kr/library/aa664786(v=vs.71).aspx 메모리 최적화 필요한 만큼의...
더 읽기

C++11 - 고정형 정수 타입

C++11에서 고정형 길이의 정수 타입이 새로 생겼음. 고정형 길이라는 것은 int8_t, int16_t 등 타입에 숫자가 붙는 것을 말함. 플랫폼에 상관 없이 크기가 고정 되어 있어서 크로스 플랫폼 개발에 사용하면 좋음. 헤더 파일 #include <cstdint> 정수 타입 int8_t, int16_t, int32_t, int64_t...
더 읽기