본문 바로가기

분류 전체보기

(35)
[C#] Enum에 Name List / Value List 가져오기 Enum.GetValues(Type) / Enum.GetNames(Type) 지정된 열거형에서 상숫값(문자열)의 배열을 검색합니다. Enum 정보 가져오기 public enum Colors { red = 0, green = 1, blue = 2, yellow = 3 } public void Run() { Console.WriteLine("Enum에 저장된 Name 가져오기"); //Enum에 저장된 Name List로 가져오기 var nameList = Enum.GetNames(typeof(Colors)); foreach (var name in nameList) Console.WriteLine($"{name}"); Console.WriteLine("Enum에 저장된 Value값 가져오기"); var va..
[WPF - Nuget] JSON Serialize / Deserialize JSON이란? JSON(JavaScript Object Notation) JavaScript Object Notation라는 의미의 축약어로 데이터를 저장하거 전송할때 많이 사용되는 경량의 Data 교환 형식 JavaScript에서 객체를 만들 때 사용하는 표현식을 의미한다 JSON 표현식은 사람과 기계 모두 이해하기 쉬우며 용량이 작아서, JSON이 XML을 대체해서 데이터 전송등에 많이 사용되고 있다. JSON은 데이터 포멧일 뿐이며 어떠한 통신 방법도, 프로그래밍 분법도 아닌 단순 데이터를 표시하는 방법일 뿐이다.JSON 특징 자바스크립트 객체 표기법과 아주 유사하다. 자바 스크립의 문법과 유사하지만 텍스트 형식일 뿐이다. 특정 언어에 종속되지 않으며, 대부분 프로그래밍 언어에서 JSON 포멧의 데..
[C#] BackgroundWorker BackgroundWorker 특징 BackgroundWorker클래스는 별도의 스레드에게 어떤 일을 시키기 위해 사용하는 클래스이다. Thread이지만, 별도의 작업없이도 UI를 제어할 수 있다.이벤트 DoWork이벤트 핸들러를 통해 실제 작업할 내용을 지정 ProgressChanged이벤트를 통해 진척 사항을 전달 RunWorkerCompleted 이벤트를 통해 완료 후 실행될 작업을 지정Program 참고 버튼을 클릭하면 BackgroundWoker에서 1~100까지 값이 증가 값의 증가에 따라 ProgressBar의 상태 변화! 버튼과, Progressbar만 놓고 바로 Test 가능 합니다. BackgroundWorker private BackgroundWorker _woker; public F..
[C#] FileSystemWatcher를 이용해 파일 및 폴더의 변화를 감지하기 FileSystemWatcher 파일 시스템 변경 알림을 수신하면서 디렉터리 또는 디렉터리의 파일이 변경되면 이벤트를 발생시킵니다. 코드에 주석을 통해 설명해 드리겠습니다. FileSystemWatcher 사용법 public void Run() { //FileSystemWatcher를 선언합니다. //어셈블리 : System.IO.FileSystem.Watcher.dll FileSystemWatcher watcher = new FileSystemWatcher(); // 어느 경로의 폴더를 감시할 것인지 지정합니다. watcher.Path = @"C:\TestFolder"; // 확인 필터를 지정합니다. 설정한 내용중에 변경이 있을경우 이벤트 발생이 됩니다. watcher.NotifyFilter = Not..
[C#] Delegate Delegate란? 델리게이트는 대리자 혹은 c언어에서 쓰이는 포인터와 같은 개념입니다. 즉 대신 일해주는 녀석인데 주로 메소드를 참조(진짜 포인터랑 비슷)하고 있는 영역이라고 말 할 수 있습니다. 주의할 점은 전달할 매소드의 매개변수와 반환 값이 델리게이트와 같아야 합니다. 사용 방법 delegate 반환형 델리게이트명(매개변수..); Delegate 사용 방법 private delegate int SummaryDelegate(int a, int b); private int Sum(int a, int b) => a + b; public void Run() { //Sum이라는 메서드를 sd1이 참조하여 사용 할 수 있습니다. SummaryDelegate sd1 = Sum; //간단한 메서드 같은경우 아래..
[C#] EventHandler - 이벤트에 특정값(Class)전달 EvenHandler 일반적인 EventHander는 이벤트 발생시 전달할 값이 없는 이벤트를 나타냅니다. public delegate void EventHandler(object? sender, EventArgs arg); 매개 변수 Sender => Object 이벤트 호출자, 이벤트 소스라 불립니다. arg => EventArgs 이벤트 데이터가 포함되지 않은 개체입니다. 그냥 이벤트 호출자의 정보(sender)를 전달하거나, 혹은 이벤트를 통해 해당시 점의 특정 메서드를 실행시킬 때 사용> EvntHander 사용 방법 //이벤트를 선언 private event EventHandler ShowMessage; public void Run() { //단지 Event를 통해 ShowMessage를 보여..
[C#] Linq에서 특정 Type만 가져오기 Linq를 이용해서 특정타입만 필터링해서 가지고 오고 싶을경우가 있습니다. 이때 Where조건을 쓰는 방법도 있지만, 저는 주로 ofType을 사용합니다. Cast를 이용해 강제 형변환시키면 되지 않나? 이 경우는 내가 타입을 알고 있어서, 그 타입을 사용하겠다 사용할때만 사용이 가능합니다. Cast 에서 이 특정타입에 맞지 않은 값이 오게되면, Error가 발생 합니다. Cast public void Run() { object[] obj = new object[] { (string)"양뱅", (int)33, (string)"동목", (string)"다방" }; //object Array를 string 타입으로 Casting 을 obj.Cast() .Select(f => f) .To..
[C#] Enumerable.Zip, Linq에서 Zip을 이용하여 결합하기 Enumberable.Zip에 관한 MSDN의 설명을 보겠습니다. Zip(IEnumerable, IEnumerable, Func) TFirst (첫 번째 결합 대상), TSecond(두 번째 결하 대상) Func (결합된 결과를 특정 형식으로 저장한다.) Zip의 경우 두 결합대상의 시퀀스 요소만큼 결합을 합니다. Enumerable.Zip 활용법 public void Run() { //numRange의 10개의 값을 가지고 있고 var numRange = Enumerable.Range(1, 10); //strArray는 4개의 값을 가지고 있습니다. var strArray = new string[] { "그 남자 그 여자", "오르막길", "엄마의 꿈"..
[C#] Linq에서 Join을 이용하여 데이터 결합하기(질의 문) Inner Join 내부 조인(Inner Join)은 교집합과 비슷합니다. 두 데이터의 특정 필드를 비교해서 일치하는 데이터만 모아서 반환합니다. Inner Join 질의 문 형식 (비교 조건이 1개일 경우) public void Run() { var peopleList = new People[] { new People() {Name = "양뱅", Age = 33, City = "수원"}, new People() {Name = "추남", Age = 33, City = "군포"}, new People() {Name = "쏭", Age = 33, City = "서울"}, new People() {Name = "쩌주", Age = 33, City = "서울"}, new People() {Name = "털", ..
[C#] Stopwatch를 이용해 경과시간 가져오기 Stopwatch란? Stopwatch 인스턴스는 한 한 간격에 대해 경과 된 시간을 측정하거나 여러 간격에 걸쳐 지난 총시간을 측정할 수 있습니다. Start와 Stop의 경과 시간을 Elapsed 알 수 있습니다. 우리가 일반적으로 사용하는 스톱워치를 사용하듯이 사용하실 수 있습니다. Stopwatch 사용 방법 public void Run() { //Stopwatch 선언 Stopwatch sw = new Stopwatch(); //Stopwatch 시작 sw.Start(); // 1초간 Delay Console.WriteLine($"시작후 1초 Delay"); Thread.Sleep(1000); //Elapsed로 중간중간의 경과시간을 확인할 수 있습니다. TimeSpan ts = sw.Elaps..