Visual Studio Community 2022 설치 .NET 데스크톱 개발을 체크해야 하고, 언어 팩에서 영어도 체크해주면 좋다. 솔루션 생성 솔루션 정리 솔루션의 용량을 줄일 수 있다. 작동 테스트 Form1.cs에 다음 코드로 테스트 ![](https://velog.velcdn.com/images/jiyul/post/a01f81a4-a7d
Form1.cs 살펴보기 >using System.Windows.Forms; -> 네임스페이스를 가져오는 코드, 코드가 회색이면 현재 코드에서 사용하지 않는다는 뜻이다. >namespace WindowsFormsApp1 -> 네임스페이스 이름 지정 코드 >public partial class Form1 : Form -> 접근제어는 public, For...
자료형 및 변환 int num; # 정수형 uint num; # 양수만 가능 float num; # 실수형 char word = 'A'; # 한 글자 string name = "Jiyul"; # 문자열 >decimal : 16byte 소수점 자료형. 다른 자료형은 숫자가 누락될 수 있어서 decimal을 사용하는게 좋다. ToString() - 문자열로 ...
솔루션 > 프로젝트 > 아이템(파일) 보통 솔루션을 만들면, 솔루션 내의 여러 프로젝트, 프로젝트 내의 여러 파일들로 만든다. 구조체 하나의 이름으로 데이터를 묶어서 관리하기 위해 사용한다. 구조체 정의 구조체 선언 > 추가) 화살표 함수 접근 제어 public : 모든 외부에서 엑세스 가능 internal : 동일한 어셈블리(프로젝트)에서만 엑세...
C#에서 property는 클래스의 멤버 변수에 접근하거나 값을 설정할 때 사용되는 멤버입니다. Property를 사용하는 이유는 여러 가지가 있습니다. 캡슐화 (Encapsulation): Property는 멤버 변수에 대한 접근을 제어함으로써 캡슐화를 가능하게 합니다. 캡슐화는 클래스의 내부 구현을 숨기고 외부에 공개된 인터페이스만을 제공함으로써 코드...
C#에서 static은 클래스의 인스턴스가 아닌 클래스 자체에 속하는 멤버를 나타내는 키워드입니다. static 멤버는 클래스의 모든 인스턴스에 공통적으로 사용되며, 특정 인스턴스에 속하는 것이 아니라 클래스 자체에 속하게 됩니다. 다음은 C#에서 static이 사용되는 몇 가지 경우입니다: Static 메서드: Add 메서드는 Calculato...
클래스 상속 public class 클래스명 : 상속받을 클래스명 메서드 오버로드 입력 변수가 다른, 같은 이름의 메서드 - 입력 변수에 따라 사용되는 메서드가 달라진다. 메서드 오버라이드 부모 클래스에서 메서드의 접근제어 뒤에 virtual을 붙여주면 자식 클래스에서 같은 이름의 메서드의 뒤에 override를 붙여 재정의 할 수 있다. >추가) 부모클...
컬렉션 배열과 같이 데이터 집합을 다루는 클래스 네임스페이스 | 이름 | - System | Array System.Collections | Stack, Queue, ArrayList System.Collections.Generic | List, LinkedList, Stack, Queue 어레이 배열을 제어하는 메소드 모음 스택 스택은 탄창이라고 생각...
Thread 하나의 프로세스(프로그램)에 여러 개의 스레드를 만들면 OS(윈도우)가 스레드의 실행 순서를 정함 멀티스레드 동시에 실행되는 것처럼 보이지만 병렬적으로 작동 lock 실습 (멀티스레드 레이스)
C#에서 delegate(대리자)와 이벤트(event)는 이벤트 기반 프로그래밍을 구현하는 데 사용되는 중요한 기능입니다. 이 두 요소는 특히 GUI 응용 프로그램 및 비동기 프로그래밍과 같은 상황에서 유용합니다. 아래에서 각각에 대한 간단한 설명을 제공합니다. Delegate (대리자): Delegate는 메서드를 참조하는 형식입니다. 다른 언어에서는 ...
새로운 스레드를 하나 생성한다. 생성한 새로운 스레드에서 Form UI를 건드리면 크로스 스레드 에러가 난다. Form UI는 그 UI가 생성된 메인 스레드에서 관리하므로(?) Invoke를 사용해 메인 스레드에게 해당 작업을 넘겨줄 수 있다고 생각하고 있다. 그래서 새로운 스레드에서 UI 작업을 해야하면, UI 작업 코드만 따로 메서드로 구분한 후 ...
WPF Windows Presentation Foundation 벡터 형식 UI (해상도 변경에 화질 저하가 없음) UI 제작에 XAML 코드를 사용 XAML eXtensible Markup Language WPF에서 View를 그리기 위한 언어 태그로 구분해 설정이나 옵션 지정 실습 WPF 공식 자습서-1 https://learn.microsoft....
프로젝트 우클릭 > Add > New Item > Resource File Resource1.resx 파일에서 Add Resource > 이미지 파일 선택 솔루션 탐색기에 Resource 폴더 내부의 이미지 파일 선택 후 Properties 창에서 Build Action을 Resource로 변경 >Build Action이란? None : 실행 파일 또는 ...
xaml 코드로 헤더 데이터(컬럼) 추가하기 cs 코드로 데이터 추가하기 원하는 값 가져오기
OpenFileDialog로 텍스트 파일 읽기
탭 컨트롤 그룹 박스 라디오 버튼 더블 클릭시 Checked 이벤트 메서드가 자동 생성됨 체크 박스 더블 클릭시 Checked 이벤트 메서드가 자동 생성됨 콤보 박스 리스트 박스 > 리스트 박스를 포함한 대부분의 컨트롤들은 데이터 템플릿에 데이터를 바인딩(Binding)하여 사용 가능 슬라이더 웹 브라우저
NuGet이란? .NET 용 패키지 매니저 파이썬의 pip, conda와 같은 역할 Visual Studio - NuGet 사용법 프로젝트 우클릭 > Manage NuGet Packages Browse로 원하는 기능 찾아 선택 후 Install ScottPlot NuGet으로 설치 가능한 무료 차트 생성 라이브러리 https://scottplot.net...
형식 변환 i를 int로 선언한 후에는 다음 코드와 같이 문자열 "Hello"를 할당할 수 없습니다. 그래서 형식 변환을 해주어야 합니다. 암시적 변환 명시적 변환(캐스트) 사용자 정의 변환 도우미 클래스를 사용한 변환 >그 중에 is와 as는 2번 명시적 변환(캐스트)에 사용됩니다. 명시적 변환(캐스트) 변환을 수행할 때 정보 손실의 위험이 있...
Action delegate인데 delegate 선언 없이 간단하게 사용할 수 있다. 하지만 리턴 값을 반환하지 않는 void형 메서드들만 캡슐화한다.
현재 WaitHandle이(가) 신호를 받을 때까지 현재 스레드를 차단합니다. autoEvent.Set() 을 실행하기 전까지 대기합니다.