전체 글(293)
-
C# 프로퍼티
프로퍼티는 Get, Set을 활용해서 get set 함수다 라는 말이 있을 정도로 그와 관련된 내용으로 소개된다. get과 set을 활용한 축약함수다. 값을 입력받고 그걸 출력할 때 말도 안되는 값이 있는 지를 체크해야 하는 경우가 있는데 그 경우에 get set을 사용한다고 한다. Get set 함수의 타겟은 보통 멤버변수다. 자료형을 선언했다면 그 자료형과 관련이 있다는 걸 명시해야 한다. 예를 들어서, set은 무조건 int하나가 들어온다고 생각하고, 들어오는 외부 값들을 프로퍼티에서는 value라고 상수로서 정의했다. 프로퍼티는 변수처럼 만들어 놨는데 보면 get set이 보인다. get과 set의 접근 제한 지정자를 다르게 해서 읽을 때는 public으로 할당할 때에는 private로 세팅도 가..
2023.05.15 -
C# 동기와 비동기 짧게
동기: 메서드를 호출한 이후, 메서드가 완료될 때까지 코드 실행이 차단 됨. 즉, 작업은 순서대로 실행되므로 하나의 작업이 끝날 때까지 다른 작업을 수행하지 않음. 걷기, 돈 다발 줍기(걷기가 끝나야 돈 다발을 줍는다.) 비동기: 메서드를 호출한 이후 해당 메서드가 완료되기를 기다리지 않고 다음 코드를 실행함. 비동기 메서드는 백그라운드 스레드(메인에서 실행하기 어려운 거, 긴 시간이 걸리는 거)에서 수행되므로, 메인 스레드는 다른 작업을 수행할 수 있다.
2023.05.15 -
C# 상속(Inheritance)
코드의 재활용성을 향상 시키기 위해서 만든 게 상속이다. 상속은 같은 코드를 반복해서 입력하기 싫을 때 사용한다. 사실, 함수도 그와 비슷한 역할이다. 상속은 클래스를 기반으로 하기 때문에 이게 대표적이다. 어떤 계열이 있는 지를 파악하는 게 중요하다. 멤버함수와 멤버변수를 클래스에서 걷어낼 수도 있다. 상속할 때에는 내려준다는 표현을 쓰기도 하고, 상속시킨다는 말을 쓰기도 한다. 새로운 클래스에 그 모든 멤버변수와 멤버함수를 넣어서 할 수도 있다. C#에서 클래스의 상속은 하나만 가능하다. 근데 인터페이스를 쓰면 여러 개 상속도 가능은 하다. 내가 주로 쓰는 것에서는 병원 정보가 가지고 있는 클래스를 상속 받는 것을 할 수 있다. 상속할 때 내려준다. 상속시킨다 라는 말을 쓴다. 상속 받을 때 메모리 ..
2023.05.14 -
C# 배열
배열은 기본자료형에 속한다. 레퍼런스 방식에 가까운데 초기값으로 선언하면 배열에 다 0이 들어가 있다. int[] realint = new int[10]; 이런 식으로 표현하고 0이 10개 들어가 있는 int형의 나열이 배열로 나오게 된다. 메모리가 연속적이다. 접근 방법은 모여있는 자료들을 접근하는 방식이다. 참조형을 담을 수 있는 공간이 10개 생긴 거라고 보면 된다. 담을 수 있는 공간이 생긴 거지 값이 10개가 만들어진 게 아니다. 2차원 배열을 사용하기도 한다.
2023.05.13 -
C# 오버라이딩
오버라이딩은 클래스를 불러올 때 누구의 것을 불러오는 지 알 수가 없는 경우가 있어서(클래스에서 함수나 클래스 같은 걸 불러올 때 누가 이 클래스나 함수를 부르는 지 알 수 없는 경우) 그 클래스만의 특성을 살린 새로운 함수를 선언해야 할 때가 있다. 그걸 불러오는 클래스나 함수에서 진행하면 코드의 길이가 너무 길어지기 때문에 문제가 생긴다. 이거는 자식에서 추가로 구현한 것을 부모가 모르는 상태라서 문제가 생기는 것이다. 그런 상황을 해결하기 위해 만들어진 게 오버라이딩이다. 오버라이딩은 상속의 개념을 지키고, 코드의 재활용성을 유지하기 위해서 만들어진 개념이다. 다형성의 핵심 문법 중의 하나이다. 다형성이라는 말은 자료형이 하나인데, 눈에 보기에는 같아 보이지만 실체가 다를 수도 있는 경우를 말한다...
2023.05.13 -
C# 인터페이스
인터페이스는 함수의 형태만 안에 물려줄 수 있는 문법이다. 예를 들어서 어떤 클래스에 다른 클래스를 상속시킨 다음에 추가로 상속을 받고 싶으면, 인터페이스를 만들어서 활용할 수 있다. 인터페이스는 함수 형태로만 안의 내용을 만들 수 있어서 함수만 물려줄 수 있는 문법이다. 클래스처럼 사용자 정의 자료형인데 멤버변수의 선언은 불가능하고 실체가 없기 때문에 정의를 사용할 수가 없다. 접근 제한 지정자는 무조건 public만 할 수 있고, private는 안 된다. 인터페이스를 상속이라고 보는 사람도 있고 포함의 개념이라고 보는 사람도 있다. 인터페이스를 상속받았으면 인터페이스에 있는 함수를 구현해야 한다. 예를 들어서 QuestUnit이라는 인터페이스를 상속받으면 그 안에 있는 함수인 Talk를 클래스 안에..
2023.05.12