일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Numpy
- JSON
- pandas
- pytorch
- Python
- Selenium
- ubuntu
- 기타 연주
- 핑거스타일
- VS Code
- SSH
- C
- label
- mysql
- error
- 명령어
- 오류
- OpenCV
- Visual Studio
- pip
- C#
- 프로그래머스
- Docker
- YOLO
- paramiko
- Linux
- C++
- LIST
- windows forms
- 채보
- Today
- Total
목록C# (13)
기계는 거짓말하지 않는다
프로그램 실행 중 발생하는 오류를 처리한다. 다음은 예제 코드이다. private void ThreadStart() { try { argsThread = new Thread(new ParameterizedThreadStart(TempFunction)); argsThread.Start(tempArgs); Thread.Sleep(interval); } } catch (ThreadInterruptedException) { MessageBox.Show("thread interrupted", "확인"); } catch (Exception e1) { MessageBox.Show(e1.Message + "\r\nLocation: ThreadStart", "오류", MessageBoxButtons.OK, Message..
System.Threading.Thread Class 스레드를 만들고 제어할 수 있다. Critical Section에 대한 관리는 신중해야 하며 Mutex, Semaphore를 사용할 수 있다. 매개변수가 없는 함수 스레드 실행 using System; using System.Threading; public class ThreadExample { public static void PrintNum() { for (int i = 0; i < 10; i++) { Console.WriteLine("Thread {0}", i); Thread.Sleep(100); } } public static void Main() { Console.WriteLine("Thread Start"); Thread t = new Th..
C# Windows Forms에 버튼, 텍스트 박스 등 여러 컨트롤에 이벤트를 등록할 수 있다. 하나 또는 그 이상의 이벤트 등록이 가능하다. Event 정의 private void button1_Click(object sender, EventArgs e) { MessageBox.Show("Event Method Name: button1_Click"); } private void Message1(object sender, EventArgs e) { MessageBox.Show("Event Method Name: Message1"); } private void Message2(object sender, EventArgs e) { MessageBox.Show("Event Method Name: Message..
- is is는 지정된 형식과 호환되는지 확인한다. public class Animal { } public class Rabbit : Animal { } class Program { static void Main(string[] args) { Animal A = new Animal(); Console.WriteLine(A is Animal); // True Console.WriteLine(A is Rabbit); // False Rabbit R = new Rabbit(); Console.WriteLine(R is Animal); // True Console.WriteLine(R is Rabbit); // True } } - as as는 지정된 형식 또는 nullable 값 형식으로 명시적으로 변환한다. ..
partial 키워드를 사용하면 클래스, 구조체, 인터페이스 또는 메서드의 정의를 둘 이상의 소스 파일에 분할이 가능하다. 이는 컴파일될 때 결합되고 대규모 프로젝트에서 클래스를 분산하면 여러 사람이 동시에 작업이 가능하다. Windows Forms, 웹 서비스 코드 작성 등에 유용하다. public partial class ClassName과 같이 partial 키워드를 붙여 사용한다. public partial class TempClass { private int num1 { get; set; } private int num2 { get; set; } private string str1 { get; set; } private string str2 { get; set; } public TempClass..
MenuStrip을 선택할 때 같은 깊이의 항목들 중 하나만 체크 표시를 하고 싶은 경우가 있다. 그러나 하나만 체크 되게 하려면 다른 목록도 검사를 해야 하고, 하지 않는다면 여러 개의 메뉴 스크립이 체크되어 보인다. 또한 DropDownItems가 더 있는 경우는 체크를 막고 하위 항목을 체크해야 한다. 하위 항목을 검사하려면 상위 항목의 드롭다운 아이템들을 가져와야 한다. 이럴 경우 아래와 같은 방법을 사용하면 된다. ToolStripMenuItem parentToolStripMenu; // 폼 로드 시 이벤트 추가 private void Form1_Load(object sender, EventArgs e) { item1ToolStripMenuItem.Click += ToolStripMenuItem..
빈 문자 또는 공백 문자만 입력했는지 확인하려면 string.IsNullOrWhiteSpace("문자열") 또는 string.IsNullOrEmpty("문자열")를 사용하면 된다. IsNullOrWhiteSpace 함수는 공백 문자만 입력했는지도 확인하고 IsNullOrEmpty 함수는 null 값 이거나 "" 문자와 같은지 확인한다. private void button1_Click(object sender, EventArgs e) { if(string.IsNullOrWhiteSpace(textBox1.Text)) { MessageBox.Show("빈 텍스트 박스"); } } 어떤 문자열과 같은지 확인하려면 "문자열".Equals("비교문자열")을 활용한다.
string.Format 이용 class Program { static void Main(string[] args) { double d = 1125.68925; // Format({index:포맷}) // 소수점 4자리까지 표기(숫자로 지정), 5번째 자리에서 반올림 Console.WriteLine("{0}", string.Format("{0:F4}", d)); // 소수점 3자리까지 표기(#문자로 지정), 4번째 자리에서 반올림 // 소수점이 모두 0이면 표기 안함(#은 0생략) Console.WriteLine("{0}", string.Format("{0:0.###}", d)); // 소수점 3자리까지 표기(#, 0문자로 지정), 4번째 자리에서 반올림 // 소수점 첫째 자리 0 표기 Console.W..