C# - Thread Local

닷넷 프레임워크 4.0 에서 추가 이전에는 비슷한 것으로 ThreadStatic 속성이 있었음 그러나 static 멤버에만 사용 가능. 멤버의 값은 보통 그 타입의 기본 값으로 초기화된다. 초기 값을 설정해도 무시된다. ThreadLocal 클래스는 위의 문제를 모두 해결 사용 방법 ThreadLocal<int> _id = new...
더 읽기

C# - File

클래스 단위로 파일에 쓰기 이 직렬화 방식은 꼭 .NET 플랫폼에서 서로 파일을 읽고 쓸 때만 사용 가능하다.만약 .NET으로 만든 프로그램에서 아래와 같이 파일을 만들고 이것을 네이티브에서 읽으면 앞에 다른 값이 들어가 있다( 정확하게는 직렬화 되는 클래스의 메타 정보가 들어가 있다...
더 읽기

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 조건을 만족하는 요소를 추출...
더 읽기