티스토리

도리담
검색하기

블로그 홈

도리담

doridam-1116.tistory.com/m

doridam 님의 블로그입니다.

구독자
0
방명록 방문하기

주요 글 목록

  • 윈폼에서 API 호출하기 1. 윈폼에서 API 호출하기 윈폼에서 API를 호출하려면 .Net의 Http를 사용한다. 또한 데이터를 Json으로 파싱하기 위해 Newtonsoft.Json 라이브러리 설치가 필요하다. NuGet 패키지 관리를 통해 라이브러리를 검색, 설치를 간편하게 할 수 있다. Newtonsoft.Json 을 검색, 설치 한다. 2. 호출 public class Api { private readonly HttpClient _httpClient; public Api() { _httpClient = new HttpClient { BaseAddress = new Uri("http://localhost:9800"), DefaultRequestHeaders = { Accept = { new MediaTypeWithQual.. 공감수 0 댓글수 0 2023. 9. 6.
  • C# 윈폼 차트 컨트롤 1. 차트 컨트롤 C#의 윈폼에는 System.Windows.Forms.DataVisualiztion.Charting 네임스페이스 안에 Chart 컨트롤이 있다. Series : 차트에서 데이터에 해당하는 X,Y 값들을 가지는 것. ChartArea : 하나의 차트는 하나 이상의 ChartArea 를 가질 수 있다. Legends : 범례에 해당하는 것으로 0개 이상의 범례를 가질 수 있고, 0개이면 표시하지 않는다. Titles : 차트 컨트롤 상단에 표시되는 제목으로 복수일 경우 위에서부터 한 라인씩 표시한다. 2. 예제 버튼을 클릭하면 임의의 데이터를 추가한다. 또한 데이터를 초기화 버튼으로 Series의 데이터를 Clear한다. 공감수 0 댓글수 0 2023. 7. 17.
  • C# App.config 윈폼 구성 파일 1. App.config 윈폼 프로그램은 사용할 옵션을 외부에 텍스트 파일 형태로 저장할 수 있는데, 이를 위해 App.config 파일을 사용한다. 프로젝트 생성시 실행파일명.config 파일이 자동으로 생성된다. 해당 config 파일을 텍스트 에디터로 실행옵션들을 변경할 수 있다. 주로 XML의 형태로 저장되고 , 가장 많이 사용하는 옵션은 appsettings와 connectionStrings이다. connectionStrings는 데이터베이스 연결 문자열을 지정할때 사용하고, appSettings는 옵션을 지정하는데 사용한다. 위 내용에서는 appSettings를 사용하여 DataDirectory를 C:\Data로 변경하는 옵션이다. 윈폼 프로그램 내에서 App.config 파일에 지정한 옵션을.. 공감수 0 댓글수 0 2023. 7. 14.
  • C# 윈폼 Drag & Drop 1. Drag & Drop C#에서 Drag & Drop 의 경우 소스컨트롤에 있는 데이터나 컨트롤을 복사 혹은 이동하는 등의 작업을 수행하는 것이다. 사용자는 마우스로 소스에 있는 데이터를 타겟으로 이동시켜 드랍하게 된다. 윈폼에서 Drag & Drop 을 구현하기 위해서는 Drop Source 구현과 Drop Target 구현이다. 2. 구현 2-1 Drop Source 구현 윈폼의 기본 Base 클래스인 Control 클래스는 DoDragDrop() 메서드를 가지고 있다. Drop Source 컨트롤에서 DoDragDrop 메서드를 호출하면 Drag & Drop 이 시작된다. 이벤트는 MouseDown 이벤트 핸들러에서 실행하게 된다. 먼저 textBox1에 MouseDown 이벤트를 추가한다. D.. 공감수 0 댓글수 0 2023. 7. 14.
  • C# 윈폼 System Tray 1. System Tray 시스템 트레이에 작은 아이콘만 표시하고 간단한 메뉴들만 두는 응용 프로그램은 메인 UI를 가지지않고 백그라운드만 작동하는 경우가 많다. 이는 Form을 사용하지 않고 NotifyIcon만 사용하여 이벤트를 작성한다. 위 예제는 Program.cs에서 작성된 예제이다. Form을 사용하지 않기 때문에 main 메서드에서 작성을 했다. using 키워드를 사용하여 NotifyIcon을 먼저 생성한다. 후에 아이콘, 이벤트, 메뉴에서 나타날 메뉴들을 작성한 후 어플리케이션을 실행하는 예제이다. 마우스클릭에 따라 MessageBox가 만들어지며, 메뉴를 클릭시에도 MessageBox가 생성된다. 또한 종료시에는 Application.exit 가 실행되어 어플리케이션이 종료된다. 이처럼.. 공감수 0 댓글수 0 2023. 7. 14.
  • C# 윈폼 윈도우 멀티쓰레딩 1. 윈도우 멀티쓰레딩 윈도우 프로그래밍에서 멀티쓰레드를 사용하기 위해서는 Thread 클래스를 사용해 새로운 쓰레드를 만들거나 쓰레드풀/Task, BackgroundWorker Wrapper 클래스를 사용한다. 윈도우 멀티쓰레딩에서 중요한 사항은 UI 컨트롤들을 갱신하기 위해서는 항상 UI 컨트롤을 생성한 UI Thread에서 갱신해야 한다는 것이다. 해당 예제는 멀티쓰레드 구현 방식을 잘못하여 UI컨트롤을 생성한 쓰레드에서 갱신한것이 아닌 다른 쓰레드에서 갱신하여 발생한 예외이다. 위와 같은 상황에서 사용하는것이 invoke 이다. invoke는 다른 쓰레드에서 UI 컨트롤으로 접근하기 위해서 사용한다. 위 예제에서 사용된 invokeRequired는 현재 쓰레드가 UI 쓰레드인지 확인 후 true .. 공감수 0 댓글수 0 2023. 7. 14.
  • C# 윈폼 BackgroundWorker 1. BackgroundWorker C#에서 BackgroundWorker는 비동기 작업을 위해 사용된다. 한 프로세스 내에서 어떠한 결과를 처리할때 시간이 오래걸린다면 UI가 응답없음 상태로 빠지게 되는데 이러한 부분을 비동기로 처리하게 되면 UI는 응답없음 상태에 빠지지 않는다. ProgressBar와 BackgroundWorker를 사용하여 버튼을 클릭시 백그라운드에서는 파일복사를 하고, 해당 작업 진척도를 ProgressBar로 나타내는 예제이다. 작업 완료시 Label에 "성공적으로 완료되었습니다." 문구를 출력한다. button1_Click을 통해 backgroundWorker의 RunWorkerAsync 메서드를 실행한다. 파일 복사 작업중 에러가 있다면 label에 에러가 표시되고, 완료된.. 공감수 0 댓글수 0 2023. 7. 14.
  • C# 윈폼 컨트롤 다루기 3 윈폼에는 컨트롤이 많기에 이전 포스트에 이어서 작성합니다. 1. RichTextBox 컨트롤 .RTF 파일 또는 Text 파일을 읽어 들여 TextBox처럼 글을 읽을 수 있는 컨트롤이다. 다른점은 폰트 및 문자색 변경등의 기능을 제공한다. 파일 경로와 파일명을 입력 후 Load File 버튼을 누르면 파일의 경로와 파일의 존재여부를 확인 후 LoadFile로 파일을 읽어들인다. Load File 버튼을 클릭하면 이와같이 파일의 내용이 나타난다. 후에 Change all to Italic 버튼을 눌러 폰트를 변경할 수 있다. 2. ToolTip 컨트롤 ToolTip 컨트롤은 특정 컨트롤에 마우스를 올려 놓으면 간단한 도움말을 보여줄 때 쓰여지는 컨트롤이다. 도구 상자에서 ToolTip을 드래그 앤 드랍 .. 공감수 0 댓글수 0 2023. 7. 13.
  • C# 윈폼 컨트롤 다루기 2 윈폼에는 컨트롤이 많기에 이전 포스트에 이어서 작성합니다. 1. ListView 컨트롤 ListView 컨트롤은 디렉토리처럼 아이템들을 여러 리스트의 형태로 보여주는 컨트롤이다. 5가지의 형태가 있고, Detail, List, Tile, LargeIcon, SmallIcon 등이 있다. 화면 구성의 경우 ListView 와 RadioButton 으로 구성하였다. 현재 디렉토리의 파일을 불러온뒤 rediobutton을 이용해 View 를 컨트롤 하는 예제이다. 먼저 파일을 불러오는 GetCurrentDirectory 메서드와 ListView를 업데이트하는 SettingListView 메서드가 있다. GetCurrentDirectory의 경우 현재 디렉토리의 정보를 불러온 뒤 정보를 통해 파일정보에 대한 배.. 공감수 1 댓글수 1 2023. 7. 13.
  • C# 윈폼 컨트롤 다루기 1. Control 윈폼에는 여러가지의 컨트롤 객체가 있다. 이 컨트롤 객체는 기본적으로 .NET framework에서 제공한다. 여러가지 컨트롤를 다루어 보며 윈폼에 익숙해 진다. 2. CheckBox 컨트롤 CheckBox 컨트롤은 체크상자와 레이블로 이루어져 있다. 이 컨트롤에서 가장 많이 쓰는 속성은 Checked로서 True나 False로 지정할 수 있다. 또다른 속성으로써 Checked, Unchecked, Intermediate 3가지의 CheckState 속성을 가질 수 있다. 이중 Intermediate는 부분적으로 선택된 경우를 뜻한다. 체크 박스를 사진의 형태로 배치하였다. 이벤트 수신 동의가 체크될때 문자, 이메일 체크박스가 같이 체크 되도록 구현한 예제이다. 이처럼 이벤트 수신 동.. 공감수 0 댓글수 0 2023. 7. 12.
  • C# 윈폼 프로젝트 생성 / button event 1. Windows Forms 어플리케이션 Windows Forms, 줄여서 윈폼이라고 부른다. 윈도우 프로그램을 만들기 위한 UI 및 상호작용을 위한 프로젝트로 이해한다. 해당 포스트는 Visual Studio 2022를 기준으로 만들어졌다. 2. 프로젝트 생성 1번은 새로 생성 / 2번은 이미 있는 프로젝트에서 생성 이다. 파일 > 새로 만들기 > 프로젝트 순으로 클릭한다. 해당 목록에서 Windows Forms 앱을 선택하거나 검색을 활용하여 클릭한다. 사진상 Windows Forms 앱 항목이 2개가 있는데, Windows Forms 앱과 (.NET Framework) 가 있는 Windows Forms 이다. 이는 .NET Core와 .NET Framework 의 차이인데, 1. .NET Fram.. 공감수 0 댓글수 0 2023. 7. 12.
  • C# async / await 1. async / await C#은 비동기 프로그래밍을 보다 쉽게 지원하는 기능인 async / await를 지원한다. async는 비동기로 실행될 메서드를 선언할때 사용하며, await는 비동기 작업이 완료될 때까지 실행을 임시 중단하는 역할을 한다. 반환형은 Task를 사용한다. 이를 사용하여 시간이 오래걸리는 작업에 비동기적 처리를 하여 프로그램의 응답성과 성능을 향상 시킬수 있다. 2. 작성법 비동기 작업을 할 메서드에 async 키워드를 사용한다. 해당 예제는 https://www.example.com 사이트로 요청을 보내고 응답이 올때까지 대기했다가 응답이 올때까지 기다렸다가 응답이 오면 작업을 완료하는 예제이다. main 메서드를 async로 선언한 뒤 Task를 반환형으로 선언한다. aw.. 공감수 0 댓글수 0 2023. 7. 11.
  • C# Dynamic 1. Dynamic C# 은 기본적으로 Static Language로 컴파일시 Type을 체크한다. 하지만 C# 4.0에서 Dynamic 기능을 추가하여 런타임시 Type을 체크할 수 있도록 했다. 이를 통해 임의로 타입을 변경하는 코드를 작성 할 수 있다. 2. var 와 dynamic var 의 경우 컴파일러가 입력되는 값을 보고 type을 정하게 된다. 이렇게 동일한 var를 사용했음에도 대입된 값의 유형에 따라 자유자재로 변한다. 하지만 만약 숫자가 들어간 num 변수에 str 변수를 넣는다면 이렇듯 이미 int 로 초기화된 num에 str 의 값을 못넣는 것이다. 하지만 만약 dynamic을 사용하게 된다면 dynamic의 경우 코드의 실행시점, 런타임 시점에서 타입을 정하기 때문에 num = .. 공감수 0 댓글수 0 2023. 7. 11.
  • C# Partial Type 1. Partial Class C#의 기능으로 클래스를 여러 파일에 정의하는 기능이다. 클래스의 내용을 여러 파일로 분리하고 컴파일될 때 분리된 파일이 결합된다. 2. 작성규칙 2-1 분할된 클래스 모두 partial 키워드를 사용해서 선언해야 한다. partial class Car{} partial class Car{} class Car{} // 에러 발생 2-2 모두 동일한 접근 제한자를 사용해야 한다. public partial class Car{} public partial class Car{} private partial class Car{} // 에러 발생 2-3 상속의 경우 모두 동일한 상속으로 선언해야한다. public partial class Car : Han {} public parti.. 공감수 0 댓글수 0 2023. 7. 11.
  • C# 확장 메서드 1. 확장 메서드 특수한 종류의 static 메서드인 확장메서드는 다른 클래스의 인스턴스 메서드인 것처럼 사용되는 기능을 제공한다. 확장메서드는 클래스, 구조체, 인터페이스에 적용될 수 있다. 확장 메서드는 static 클래스 내부에 static 메서드로 정의된다. 확장메서드는 첫번째 파라미터로 this 키워드와 사용될 클래스의 타입을 지정한다. 2. 작성법 세글자 마다 잘라내는 임의에 확장 메서드를 구현하는 예제이다. static 클래스 내부에 static 메서드인 Slice 메서드를 통해 전달받은 string 값을 StringBulider를 통해 세번째 글자를 저장하여 최종적으로 리턴하는 메서드이다. String 문자열에는 확장 메서드가 자동완성으로 확인되는것을 보았다. 해당 예제는 이미 정의한 클래.. 공감수 0 댓글수 0 2023. 7. 11.
  • C# 무명 메서드 / 람다식 / 익명타입 1. 무명 메서드 C#에는 미리 정의 하지 않아도 되는 메서드명이 없는 무명 메서드를 지원한다. 델리게이트와 같이 사용하며 재사용하지 않는 일회성 메서드로 활용하는데 용이하다. 작성 형식은 델리게이트를 선언 후 동일한 형식의 매개변수와 뒤에 코드블럭을 작성한다. 2. 예제 2개의 int형 매개변수를 받아 더하는 무명 메서드를 구현한 예제이다. delegate를 선언한 후 해당 delegate의 인스턴스에 무명 메서드를 생성한다. 사용시 인스턴스명으로 사용하게 된다. 3. 람다식 람다식은 익명함수를 표한하는데 사용된다. (파라미터) => { 실행 문장 블럭 }; 으로 사용하며 파라미터는 0개~N개 까지 적용할 수 있다. 람다식은 미리 선언되어 있는 델리게이트와 같이 사용하게 된다. 종류로는 Func , A.. 공감수 0 댓글수 0 2023. 7. 11.
  • C# 인터페이스 1. 인터페이스 인터페이스는 클래스와 비슷하게 메서드, 속성, 이벤트, 인덱서 등을 가지고 있지만 이것을 구현하지 않고 정의만 한다. 클래스에 인터페이스를 적용하여 클래스는 인터페이스에 정의된 모든것의 구현을 강제한다. 추상 클래스와 개념적인 부분은 비슷하지만 다른점은 다중 상속의 유무이다. 하나의 클래스는 여러개의 인터페이스를 구현할 수 있다. 2. 정의법 인터페이스의 경우 class 처럼 namespace 내부에 선언되며 interface 키워드를 사용하여 작성한다. 위 예제 처럼 두개의 인터페이스를 하나의 클래스인 Program 에게 구현 할 수 있다. 또한 구현을 강제하기 때문에 적용된 인터페이스의 구성요소가 구현되어 있지 않은 경우 에러를 발생 시킨다. 추가. 인터페이스의 사용 인터페이스는 공통.. 공감수 0 댓글수 0 2023. 7. 10.
  • C# 제네릭 1. 제네릭 여러가지 동작에 대응하는 타입을 확정하지 않고 타입 파라미터로 받아들이도록 클래스를 정의하는 것. 일부 데이터 타입으로 인한 중복 클래스 생성을 하지 않아도 된다. 적용의 경우 클래스, 인터페이스, 메서드에도 가능하다. 제네릭을 적용한 예제이다. MyStack 클래스를 제네릭으로 선언한뒤 내부 메서드의 매개변수 및 타입도 제네릭으로 선언하여 객체 생성타입에 따라 다른 타입을 가지는 객체로 만들어지도록 구현하였다. int 로 생성된 numberstack과 string 으로 생성된 nameStack에 각각 데이터를 넣고 출력하는 예제이다. 2. 제네릭 타입 제약 제네릭 타입을 선언할 때, value 타입인지 Reference 타입인지 클래스 파생, 인터페이스 구현 등을 지정할 수 있는데, 이는 .. 공감수 0 댓글수 0 2023. 7. 10.
  • C# static / 정적 메소드 1. static 메서드 Static 메서드는 객체를 생성하지 않고 직접 호출하는 메서드이다. 컴파일시 메모리에 곧바로 올라가기 때문에 객체를 생성하지 않고 사용할 수 있다. 또한 메서드 내부에서 클래스의 인스턴스 객체의 멤버를 참조해서는 안된다. Car 클래스에 MaxSpeed와 MinSpeed 를 구현한 예제이다. Max는 일반 메서드, Min은 static 메서드로 구현하였다. MaxSpeed의 경우 new로 객체를 생성한 후 사용해야하는 반면 MinSpeed는 클래스.메서드명 으로 사용된 것을 볼수 있다. 2. static 속성, 필드 static 속성 및 필드의 경우 클래스가 처음으로 사용될 때 한번 초기화되어 계속 동일한 메모리를 사용하게 된다. static 속성 및 필드를 구현한 예제이다. .. 공감수 0 댓글수 0 2023. 7. 10.
  • C# 파생 클래스, 추상 클래스 1. 파생클래스 C#은 부모 클래스인 부모 클래스(Base Class)를 상속하여 자식 클래스(Derived Class)를 만들 수 있다. 상속을 사용하게 되면 Base 클래스의 데이터 및 메서드를 사용할 수 있게 된다.(public 또는 protected로 선언되어야 한다.) 자식 클래스는 여러개의 부모클래스를 상속받을 수 없고 하나의 부모 클래스만 상속 받을 수 있다. 2. 작성법 상속에 대한 규칙으로는 class 자식 : 부모 와 같이 작성한다. 해당 간단한 예제는 Car 클래스를 상속 받은 Avante 클래스를 구현한 것이다. Avante클래스에서 _price 필드를 상속 받아 재사용한 케이스이다. 1. 추상 클래스 C# 에서 추상클래스는 클래스를 만드는 도면으로 생각할 수 있다. public a.. 공감수 0 댓글수 0 2023. 7. 10.
  • C# 접근제한자 1. 접근제한자 클래스, 메소드, 변수, 구조체 등의 외부 접근을 제어하는 접근제한자이다. 사용은 public class Exam {} 과 같이 선언부의 제일 첫번째에 작성한다. 또한 클래스는 모든 접근제한자를 가질 수 있지만, 구조체의 경우 상속이 되지 않으므로 3가지의 접근 제한자만 허용한다. 2. 접근 제한자 디폴트 접근 제한자를 선언하지 않을 경우 다음과 같은 각 유형에 디폴트 접근 제한자를 가지게 된다. 클래스, 구조체, 인터페이스 : internal 클래스의 멤버, 중첩된 유형의 멤버 : private enum, 구조체 . enum . 인터페이스의 멤버 : public 3. 접근 제한자 사용 public은 모든 외부의 호출에 대해 제한사항이 없다. Car 클래스의 내부 변수 _carName과 .. 공감수 0 댓글수 0 2023. 7. 10.
  • C# 인덱서 1. 인덱서 정의 C# 인덱서는 클래스 객체의 데이터를 배열의 형태로 인덱스를 사용해 접근할 수 있게 해준다. 2. 인덱서 작성법 Cars 클래스의 내부의 변수 name과 price를 선언했다. 또한 this [] 를 사용하여 객체에 대한 인덱스를 선언하였다. get 과 set를 선언하고 인덱스에 따라 값을 리턴하거나 set 하는 코드를 내부에 구현한 예제이다. Main 메소드에서 객체를 생성하고 인덱스를 통해 set 한 후 Console.WriteLine 을 통해 출력한 예제이다. 공감수 0 댓글수 0 2023. 7. 7.
  • C# 전처리기 1. 전처리기 지시어 C# 전처리기 지시어는 실제 컴파일이 시작되기 전에 컴파일러에게 특별한 명령을 미리 처리하도록 지시하는 것이다. 모든 C#의 전처리기 지시어는 #으로 시작한다. 또한 명령어기 때문에 ;은 붙이지 않는다. 조건을 설정하여 컴파일시 특정 블록을 처리하는데 사용한다. 2. 지시어 종류 #define : 심볼을 정의한다. #undef : 심볼을 해제한다. #if, #elif, #else, #endif : 조건문 #warning, #error : #warning은 경고 메시지 출력 후 컴파일은 계속 진행된다. #error는 오류 메시지를 출력하고 컴파일을 중지 시킨다. #region, #endregion : 코드블럭을 논리적으로 묶는다. 3. 예제 #define으로 DEBUG를 선언한다. 이.. 공감수 0 댓글수 0 2023. 7. 7.
  • C# Delegate, Event 1. 델리게이트 C#에서 델리게이트란 메서드를 참조하고 호출하는데 사용되는 형식이다. 데리게이트는 메서드에 대한 참조를 보유하고 있고 해당 메서드를 호출할 수 있다. 이를 통해 메서드를 캡슐화하고 다른 메서드에 전달하거나 이벤트 처리 등에 유용하게 활용할 수 있다. 델리게이트를 사용하기 위해선 delegate 키워드를 사용한다. delegate 반환형 이름(매개 변수);​ 위의 형태를 따라서 선언하며 참조하고자 하는 메소드의 경우 델리게이트의 반환형, 매개변수가 동일해야 참조가 가능하다. 해당 예제에서는 PDelegate란 이름으로 델리게이트를 선언 후 Plus 메소드를 해당 델리게이트에 참조 시켜 출력한다. 이를 통해 Plus 메서드를 PDelegate가 참조하고 있다는 것을 알 수 있다. 델리게이트 .. 공감수 0 댓글수 0 2023. 7. 7.
  • C# 메서드 1. 메서드 클래스내에 코드 블럭을 실행시키는 함수를 메서드라 칭한다. 메서드는 0부터 N개 까지의 인수를 가질 수 있고 리턴 값을 가질수 도 있다. 아래의 형식에 따라 작성한다. 접근제한자 리턴타입 이름() { }​ 2. 작성법 작성은 클래스 내부에 작성하며 Main 메서드에서 Print 메서드를 호출하는것 만으로 출력을 할 수 있다. 비슷한 코드이지만 인자를 설정함으로써 전달하는 값에 따라 출력 값을 다르게 할 수 있다. 해당 예제는 int로 리턴하는 메서드이고, 전달받은 값에 +10을 한뒤 리턴하는 메서드이다. 인수가 하나 이상일 경우 이름을 지정해서 전달하거나 순서에 맞게 전달하여 사용한다. 만약 메서드의 인수에 디폴트 값을 설정한 것을 Optional 파라미터라고 한다. int age = 1 을.. 공감수 0 댓글수 0 2023. 7. 7.
  • C# Nullable 타입 1. Nullable 타입 C#에서 Value Type 같은 경우 Null을 가질 수 없다. 예를들어 int, bool 과 같은 타입에는 null를 할당하지 못한다. 하지만 Nullable 타입을 활용한다면 null을 할당할 수 있는데, Value 값을 가지면서 Null 상태를 체크할 수 있는 NHasValue를 가지고 있는 struct 이다. 2. 작성법 일반적으로 int i = 0; 으로 value 타입을 선언하지만 int? i = null; 을 사용하는 것으로 null을 할당할 수 있다. 타입뒤에 ? 키워드를 붙여 사용하는 것이다. 이는 Nullable 와 동일한 효과를 지닌다. int num = null; 은 에러를 발생시키지만 int? num = null; 은 에러를 발생시키지 않는다. 또한 N.. 공감수 0 댓글수 0 2023. 7. 7.
  • C# 클래스 1. 클래스 C#의 class 키워드는 Reference Type을 정의하는데 사용된다. 클래스는 메서드, 속성, 필드, 이벤트등을 포함하는 단위로서 객체를 생성하는 설계도의 역할을 한다. 내부 필드의 접근제한자를 설정하여 외부의 접근을 차단하거나 허용할 수 있다. 해당 예제에서는 Student 클래스를 선언하고 Main 메소드를 가지는 Program 클래스를 선언하였다. Student 클래스 내부에는 private 로 선언된 name과 age가 있다. 이는 객체 지향의 원칙을 준수하는 간접적 접근을 위한 외부의 직접적으로 값 변경을 막기위함이다. public으로 Name, Age 메소드를 선언하고 각 메소드 내부에 get과 set을 통해 값을 설정하거나 출력할 수 있도록 작성했다. 또한 GetStude.. 공감수 0 댓글수 0 2023. 7. 6.
  • C# 구조체 1. 구조체 C#에서는 Value Type 과 Reference Type을 지원한다. 생성시 struct 키워드를 사용하면 Value로 생성할 수 있고, class를 사용하면 Reference로 생성 가능하다. 기본 데이터 타입 : int, double, float, bool 등은 struct로 정의되어 있는 value type 이고, 주로 값을 저장하는데에 사용된다. 또한 상속을 하지 못하고, 기본생성자를 가지지 못하기 때문에 필드를 초기화 해줘야한다. Reference 타입의 경우 class로 정의하여 생성하고 상속이 가능해 진다. 복잡한 데이터와 행위들을 정의하는곳에 사용한다. 2. 사용 class Program 내부에 MyPoint 라는 구조체를 선언하고, 생성자를 선언해 new 키워드로 생성시 .. 공감수 0 댓글수 0 2023. 7. 6.
  • C# 네임스페이스 1. 네임스페이스 .NET Framework의 정의되어 있는 많은 클래스들을 가지고 있고, 이러한 클래스들을 충돌없이 보다 편리하게 관리하기 위해 네임스페이스를 사용한다. 네임스페이스는 여러개의 클래스를 가질 수 있고 그로 인해 여러개의 클래스를 관리 할 수 있다. 또한 하나의 파일에 여러개의 네임스페이스를 선언함으로써 동일한 효과를 지닌다. 2. 사용법 네임스페이스를 사용하기 위해서는 두가지 방식이 있다. 클래스명 앞에 네임스페이스를 적거나, using 키워드를 사용하여 파일 내부에서 활용하는 경우가 있다. 예시 코드에서는 여러개 네임스페이스를 선언하고 네임스페이스 안에 클래스를 선언했다. main 메소드에 클래스명은 동일하지만 네임스페이스를 다르게 함으로써 동일한 클래스명에 대한 선언을 할 수 있고,.. 공감수 0 댓글수 0 2023. 7. 6.
  • C# 예외처리 1. 예외 처리 C#의 Exception은 .NET Framework의 Exception 메커니즘에 따라 Exception을 처리한다. System.Exception을 Base로 하고 하위에 다른 여러가지 종류의 Exception이 있다. try-catch-finally 순으로 나뉘며 try 안에는 Exception 발생 예상 코드, catch 는 발생시 작동될 코드, finally는 Exception의 발생여부와 상관없이 실행되는 코드 블럭이다. try { 실행 코드 } catch (Exception e) { 예외처리 구문 } finally { 마지막 실행 구문 (무조건 실행됨) }​ 예시 코드에서는 임의로 런타임에러를 발생시켜 Exception 처리가 되는지 확인한다. 만약 Exception 처리를 .. 공감수 0 댓글수 0 2023. 7. 6.
    문의안내
    • 티스토리
    • 로그인
    • 고객센터

    티스토리는 카카오에서 사랑을 담아 만듭니다.

    © Kakao Corp.