일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Selenium
- pip
- YOLO
- C
- Numpy
- 프로그래머스
- 오류
- VS Code
- mysql
- C#
- 명령어
- windows forms
- OpenCV
- Python
- Visual Studio
- C++
- ubuntu
- paramiko
- error
- Linux
- SSH
- 채보
- JSON
- pytorch
- label
- pandas
- LIST
- 핑거스타일
- Docker
- 기타 연주
- Today
- Total
목록C# (16)
기계는 거짓말하지 않는다
프로그램 실행 중 발생하는 오류를 처리한다. 다음은 예제 코드이다. 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..
VS 2019를 사용했다. 컴파일 후 실행 파일을 관리자 권한으로 실행해야 할 때가 있다. 아래와 같이 진행한다. 프로젝트 우클릭 - 추가 - 새 항목 선택 애플리케이션 매니페스트 파일 선택 이후 app.manifast 파일이 생성된다. 이곳에서
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("비교문자열")을 활용한다.