반응형 C#16 C# CS0227 오류 설명 및 해결 방법 C#에서 CS0227 오류는 "스위치 문의 식이 값이 아니거나 조건식이 아닌 형식"이라는 오류 메시지로, 주로 switch 문에서 발생합니다. 이 오류는 switch 문에서 사용된 표현식이 유효한 값이 아니거나, 조건으로 사용할 수 없는 타입일 때 발생합니다.오류 원인CS0227 오류는 switch 문에 사용되는 표현식이 컴파일러가 처리할 수 있는 형식이 아닐 때 발생합니다. switch 문은 기본적으로 정수형 값(예: int, enum), 문자형 값(예: char), 문자열(예: string), 또는 bool 타입과 같은 몇 가지 특정한 타입만 허용합니다. 만약 switch 문에서 이러한 타입이 아닌 값을 사용하면 CS0227 오류가 발생합니다.예시 코드 (오류 발생)string value = "Hel.. 2024. 12. 30. C# Thread.Priority 속성 C# Thread.Priority 속성Thread.Priority 속성은 C#의 System.Threading 네임스페이스에서 제공하며, 특정 스레드의 우선순위를 설정하거나 가져오는 데 사용됩니다. 스레드 우선순위는 스레드가 운영 체제에서 CPU 시간을 얼마나 자주 할당받는지를 결정하는 데 영향을 줍니다.기본 설명정의:Thread.Priority 속성은 System.Threading.ThreadPriority 열거형 값을 사용하여 스레드의 우선순위를 지정합니다.값:ThreadPriority는 다음과 같은 우선순위 수준을 제공하는 열거형입니다.값 설명ThreadPriority.Highest가장 높은 우선순위입니다. CPU 자원을 더 자주 할당받을 가능성이 큽니다.ThreadPriority.AboveNorm.. 2024. 12. 27. "C# WinForms에서 멀티스레드로 안전하게 UI 컨트롤하기: InvokeRequired와 Invoke의 원리와 활용" C# WinForms에서 UI를 업데이트할 때 this.InvokeRequired와 this.Invoke를 사용하는 이유는 멀티스레드 환경에서 UI 스레드(Single-Threaded Apartment, STA)를 안전하게 다루기 위해서입니다. 이를 이해하기 위해 다음의 개념들을 알아야 합니다:1. WinForms의 UI 스레드 모델WinForms는 **단일 스레드(Single Thread)**에서 UI를 관리합니다. 즉, UI 컨트롤은 생성된 스레드(주로 메인 스레드)에서만 직접 접근할 수 있습니다.만약 다른 스레드(예: 백그라운드 작업을 수행하는 Thread 또는 Task)에서 UI를 직접 업데이트하면 InvalidOperationException이 발생할 수 있습니다.2. 멀티스레드에서 UI 업데이.. 2024. 12. 18. 프로퍼티 class 클래스이름 { 데이터형식 필드이름; 접근한정자 데이터형식 프로퍼티이름 { get { return 필드이름; } set { 필드이름 = value; } } } class MyClass { private int myField; public int MyField { get { return myField; } set { myField = value; } } } MyClass ojb = new Mylass(); obj.MyField = 3; Console.WriteLine( obj.MyField ); 2023. 8. 5. winform 시스템메뉴 MenuStrip 오른쪽버튼 protected override void OnMouseClick(MouseEventArgs e) { base.OnMouseClick(e); // 마우스 우측 버튼이 눌린 경우 if (e.Button == System.Windows.Forms.MouseButtons.Right) { // 컨텍스트 메뉴 객체를 만들고 ContextMenu ctxMenu = new ContextMenu(); // 컨텍스트 메뉴에 들어갈 2개의 MenuItem을 생성해서 추가 MenuItem menuItem = new MenuItem("새로 고침"); menuItem.Click += menuRefresh_Click; ctxMenu.MenuItems.Add(menuItem); menuItem = new MenuItem("종료").. 2023. 7. 22. as, is 연산자 as 연산자 형변환이 가능하면 지정된 타입의 인스턴스 값을 반환하고, 가능하지 않으면 null을 반환하기 때문에 null 반환 여부를 통해 형변환이 성공했는지 판단할 수 있다. as연산자는 참조형 변수에 대해서만 적용할 수 있고 참조형 타입으로의 체크만 가능하다. Computer pc = new Computer(); Notebook notebook = pc as Notebook; if( notebook != null ) { notebook.CloseLid(); } is 연산자 형변환의 가능성 여부를 bool type의 결과 값(true / false)으로 반환한다. Notebook pc = new Notebook(); if(pc is Notebook) { Console.WriteLine("변수 pc는 N.. 2023. 7. 16. 이전 1 2 다음 반응형