본문 바로가기

C# 문법

(26)
[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..
[C#] IP, SubnetMask, Gateway 정보 가져오기 WMI(Windows Management Instrumentation) WIM는 Window 기반 운영체제에서 사용되는 관리데이터입니다. WMI를 이용하면, 시스템의 모든 하드웨어에 대한 정보에 접근할 수 있습니다. ManagementObjectSearcher 지정된 쿼리에 따라 관리 개체의 컬렉션을 검색합니다. 예를 들어, 이 클래스를 상용하여 시스템의 모든 디스크 드라이브, 네트워크 어댑터 등을 쿼리할 수 있습니다. WMI를 사용하기 위해서 System.Management dll를 추가해 주셔야 합니다. IP, SubnetMask, Gateway, DNS Server, MacAddress 검색기 private void btnIP_Click(object sender, EventArgs e) { Mana..
Activator를 사용하여 런타임에 객체를 동적으로 생성하기 Activator.CreateInstance 란? 지정한 매개 변수와 가장 일치하는 생성자를 사용하여 지정한 유형의 인스턴스를 만듭니다. Activator.CreateInstance(Type type, object[] params) 와 같이 되어 있습니다. 경험 업무를 하다 보면, 동적으로 User Control(object, Class, T..)를 생성해야 할 때가 있습니다. 이때 내가 Control의 Type 정보를 알고 있다면, 동적으로 생성할 방법을 알려드리겠습니다. 1.생성자에 매개변수가 없는 경우 public void Run() { Type tmpType = typeof(PopupContent); //Type을 이용해 동적으로 Object를 생성 var std = Activator.Create..
[C#] Reflection을 이용하여 동적으로 값을 넣기 Reflection 리플렉션을 사용하면 동적으로 형식 인스턴스를 만들거나, 형식을 기존 개체에 바인딩하거나, 기존 개체에서 형식을 가져와 해당 메서드를 호출하거나, 필드 및 속성에 액세스할 수 있습니다. 경험 일을 하다 보면, Class에 선언된 Property / Field에 값을 넣어야 하는 경우가 있습니다. 그때 런타임 시점에서 동적으로 값을 넣는 방법에 관해 알아보겠습니다. 1. Property public void Run() { Student std = new Student(); //Student Class에 Property 를 모두 가지고 온다. PropertyInfo[] pArr = typeof(Student).GetProperties(); foreach (var pInfo in pArr) ..
[C#] Linq에서 값이 존재하는지 확인, Any, ALL, Exist Any, All ,Exist 결과값은 bool (참, 거짓)의 값이다. 상황에 따라 어떻게 사용되는지 보겠습니다. Any Any는 조건에 해당하는 값이 1개라도 존재한다면, '맞다'라는 결과를 도출 Any 활용 public void Run() { var arrSource = new string[] { "춘남", "추남", "공목다방" }; var arrTarget = new string[] { "양뱅", "태발", "공목다방" }; //Any 단일 비교 string name = "춘남"; // => arrSource에 값 중에 Name에 해당하는 값이 1개라도 있는가? bool result = arrSource.Any(f => f == name); Console.WriteLine($"1개라..
[C#] XML Serialization / Deserialization Class(객체)를 XML로 바꾸어 저장하는 것을 XML Serializer이라 한다. XML을 Class로 복원하는 것을 XML Deserialize이라 부른다. 메모리상에 XML값을 저장하거나, 혹은 네트워크에서 Stream으로 만들어 외부에 보낼 때 사용된다. XML Serializer public class History { public string Name { get; set; } public int Age { get; set; } public List Friends { get; set; } } public void Run() { History hClass = new History(); hClass.Name = "양뱅"; hClass.Age = 33; hClass.Friends = new Lis..