C#에서 Settings.settings에 클래스 저장하기 1. Settings.settings에 새로운 설정 항목 추가하기 프로젝트의 솔루션 탐색기에서 '속성'을 더블 클릭합니다. 설정 탭을 선택합니다. 새로운 설정 항목을 추가합니다. 예: 이름을 SerializedClass로, 형식을 String로 설정합니다. 2. 클래스를 문자열로 직렬화하고 Settings.settings에 저장하기 using System.IO; using System.Xml.Serialization; public class MyClass { public string Name { get; set; } public int Age { get; set; } } public string SerializeObjectToXml(T objec..
C#에서 문자열의 길이를 일정하게 맞추거나 문자열을 특정 문자를 붙이고 싶을때 PadRight와 PadLeft 를 사용하면 된다 1. PadRight 메서드 기본 사용법 : string original = "hello"; string padded = original.PadRight(10); Console.WriteLine(padded); // 출력: "hello " 특정 문자 붙이기 : string original = "hello"; string padded = original.PadRight(10, '!'); Console.WriteLine(padded); // 출력: "hello!!!!!" 2. PadLeft 메서드 기본 사용법 : string original = "hello"; string padd..
1. 참조 추가하기 Microsoft ADO Ext. 6.0 for DDL and Security 를 참조한다 2. Access 파일 생성하기 아래 코드를 실행한다 Catalog myCatalog = new Catalog(); string strProvider = @"Provider=Microsoft.ACE.OLEDB.12.0; Data Source=d:\db.accdb"; try { myCatalog.Create(strProvider); } catch (Exception ex) { MessageBox.Show(ex.Message, "Make AccessDB Error"); } 3. 테이블 생성한다 테이블 생성하고 데이터 입력한다.. 4. 연결문자열 string connStr = @"Provider=Mi..
C#의 lock 키워드 이해하기 멀티스레딩 환경에서는 여러 스레드가 동시에 리소스에 접근하려고 할 때 문제가 발생할 수 있습니다. 이러한 동시 접근을 제어하려면 동기화 메커니즘이 필요합니다. C#에서는 lock 키워드를 사용하여 특정 코드 영역의 동시 실행을 방지하는 방법을 제공합니다. 1. 왜 lock이 필요한가? 스레드 간의 경쟁 조건(Race Condition) 때문입니다. 경쟁 조건은 두 개 이상의 스레드가 동시에 공유 데이터에 접근하려고 할 때 발생하는 현상으로, 데이터의 무결성을 손상시킬 수 있습니다. 예를 들어, 두 스레드가 동시에 계좌 잔액을 변경하려고 한다고 가정하면, 한 스레드가 잔액을 업데이트하는 동안 다른 스레드도 동일한 작업을 수행할 수 있으므로 잘못된 잔액이 저장될 수 있습니다...
private void chart1_MouseClick(object sender, MouseEventArgs e) { HitTestResult result = chart1.HitTest(e.X, e.Y); if (result.ChartElementType == ChartElementType.DataPoint && result.PointIndex != -1) { Log(result.PointIndex.ToString()); } }
class Hoga : INotifyPropertyChanged { private long _mesu; private long _medo; public event PropertyChangedEventHandler PropertyChanged; public Hoga(long mesu, long medo) { Mesu = mesu; Medo = medo; } public long Mesu { get { return _mesu; } set { if (_mesu == value) { return; } _mesu = value; OnPropertyChanged(nameof(Mesu)); } } public long Medo { get { return _medo; } set { if (_medo == value) ..