일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- params
- array
- 코딩테스트
- 객체지향프로그래밍
- 이스케이프시퀀스
- 콜라이더
- 플로우차트
- 배열
- 코딩컨벤션
- Git
- Memory safety
- 델리게이트
- C#
- 코루틴
- 미들웨어
- 귤고르기
- 정보능력
- 기초
- Mod
- 구조체
- 함수
- 트랜잭션
- Unity
- 수리능력
- 설계원칙
- NCS
- 문제해결능력
- 전달방식
- 연산자
- 커밋메시지컨벤션
- Today
- Total
목록C# (20)
임준일의 개인 블로그

메서드의 매개변수 전달 방식 메서드의 매개변수 전달 방식은 사용하는 방식에 따라 네 가지로 분류한다. 지금까지 기본으로 사용한 매개변수 전달 방식은 값 전달 방식이다. 이에 추가해서 ref 키워드를 사용하는 참조형 전달 방식과 out 키워드를 사용하는 반환형 전달 방식, 마지막으로 params 키워드를 사용하는 가변형 전달 방식이 있다. 값 전달 방식 말 그대로 값을 그대로 복사해서 전달하는 방식을 의미한다. 지금까지 사용해왔던 매개변수 방식이다. 값 전달 방식 예제 public void ValueTypeParam(int firstNumber, int secondNumber) { // 숫자를 스왑했던 방식 int temp = firstNumber; firstNumber = secondNumber; sec..
대리자(Delegate)는 매개변수 목록 및 반환 형식이 있는 메서드 참조(포인터)를 나타내는 형식이다. 영어 단어 delegate는 '위임하다' 또는 '대신하다'의 의미가 있다. 대리자(위임/델리게이트) 대리자는 delegate 키워드를 사용하여 만든다. 대리자는 함수 자체를 데이터 하나로 보고 의미 그대로 다른 메서드를 대신 실행하는 기능이다. 한 번에 하나 이상을 대신해서 호출할 수 있는 개념이다. 자동차 개체를 예로 들면, 대리운전처럼 대리자가 집까지 좌회전(), 우회전(), 직진(), 주차() 등 동작을 대신해서 할 수 있게 하는 개념과 비슷하다. 메서드의 매개변수로 대리자를 넘길 수 있다. 대리자를 사용하여 함수의 매개변수로 함수 자체를 전달할 수 있다. 메서드의 매개변수로 또 다른 메서드 호..
컬렉션 사용하기 배열처럼 특정 항목의 집합을 리스트 또는 컬렉션이라고 한다. 컬렉션은 배열, 리스트, 사전을 사용하여 관련 개체의 그룹을 만들고 관리한다. 배열과 컬렉션 c#에서 배열(Array)과 컬렉션(Collection), 리스트(List)는 학습 레벨에서 동일하고 취급한다. 컬렉션 클래스는 데이터 항목의 집합을 메모리상에서 다루는 클래스로, 문자열 같은 간단한 형태도 있다. 그리고 특정 클래스 형식의 집합 같은 복잡한 형태도 있다. 3가지의 자주 쓰는 컬렉션 소개 배열 : 일반적으로 숫자처럼 간단한 데이터 형식을 저장한다. 리스트 : 간단한 데이터 형식을 포함한 개체들을 저장한다. 사전(Dictionary) : 키와 값의 쌍으로 관리되는 개체들을 저장한다. 일반적으로 기본형 그룹을 배열로 보고, ..
c#은 객체 지향 프로그래밍이라는 캡슐화, 상속, 다형성, 추상화 등 개념을 제공한다. 객체 지향 프로그래밍 소개하기 현재까지, 현업에서 가장 많이 사용하는 프로그램 작성 기법은 객체 지향 프로그래밍(Object Oriented Programming) 이다. 객체 지향 프로그래밍은 OOP로 줄여서 표현한다. 객체 지향 프로그래밍의 목적은 다음과 같다. 프로그램을 분석하기 쉬워진다. 프로그램 유지보수가 쉬워진다. 프로그램의 특정 기능을 재사용할 수 있다. 객체 지향 프로그래밍이라는 것은 학술적인 의미를 가지는 것이며, 만능은 아니다. Tip : c#에서 클래스와 객체는 명사로 표현하고, 속성은 명사 또는 형용사, 메서드는 동사의 의미가 있다. 개체(Object) 클래스를 사용하여 새로운 형식을 정의하고, ..
인터페이스 인터페이스는 클래스 또는 구조체에 포함될 수 있는 관련있는 메서드들을 묶어 관리한다. 인터페이스는 명세서(규약, 표준) 역할을 한다. 중요!)인터페이스를 상속받아 그 내용을 구현하는 클래스는 인터페이스에 선언된 멤버(속성, 메서드 등)가 반드시 구현되어 있다는 보증을 한다. 인터페이스는 interface 키워드를 사용하여 만든다. 인터페이스는 실행 가능한 코드와 데이터를 포함하고 있다. 추상 클래스처럼 다른 클래스에 멤버 이름을 미리 정의할 때 사용한다. 추상 클래스와 다른 점은 멤버 내용을 구현하지 않고 멤버 이름만 정의한다. 인터페이스에는 메서드, 속성, 인덱서, 및 이벤트를 정의할 수 있다. 현실 세계에서 전 세계 표준과 같은 기능이다. 단일 상속만 지원하는 클래스와 달리 인터페이스를 사..
메서드 오버라이드 부모 클래스에 만든 메서드를 자식 클래스에서 다시 새롭게 만들어 사용하는 것을 메서드 오버라이드라고 한다. 메서드 오버라이드 : 재정의 클래스 관계를 따지는 상속 개념에서 부모 클래스에 이미 만든 메서드를 동일한 이름으로 자식 클래스에서 다시 정의(재정의) 해서 사용한다는 개념이 메서드 오버라이드라고 한다. 메서드 오버라이드는 메서드를 새롭게 정의하는 것 오버라이드(Override), 오버라이딩(Overriding)이라는 표현은 동일하다. 부모 클래스에 virtual 키워드로 선언해 놓은 메서드는 자식 클래스에서 override 키워드로 재정의해서 사용 가능하다. 메서드 오버로드와 오버라이드 처음 프로그래밍할 때 쉽게 혼동하는 단어가 바로 오버로드(Overload)와 오버라이드(Over..
클래스 소개하기 클래스는 지금까지 작성하는 모든 예제에서 기본이 되는 c#의 핵심 코드이다. public class [클래스 이름] { - 무언가 내용 } 같은 코드 블록을 사용하여 정의할 수 있다. 클래스를 정의하는 전반적인 내용과 클래스 내부 또는 외부에 올 수 있는 구성 요소는 다음장에서 살펴볼 것. 클래스의 구성 요소는 많지만, 그 중 속성과 메서드를 가장 많이 사용한다. 속성은 데이터를 다루고, 메서드는 로직을 다룬다. 클래스 속성 : 데이터 메서드 : 로직 클래스는 그 의미에 따라, 이미 닷넷 프레임워크에서 만들어 놓은 내장 형식(built-in type)과 사용자가 직접 클래스 구조를 만드는 사용자 정의 형식(User defined type)으로 구분할 수 있다. 예를 들어 Console, ..
구조체란? 구조체는 이름 하나로 데이터를 묶어 관리하는 역할을 한다. 앞에서 배운 변수는 이름 하나로 공간을 하나 갖고, 배열은 이름 하나로 데이터 형식이 동일한 공간을 여러 개 갖는다. 변수와 배열을 확장하여 이름 하나로 데이터 형식을 1개 또는 여러 개 보관하는 그릇 역할을 하는 것이 바로 구조체이다. 구조체는 int, string 등 서로 다른 자료를 한 집단으로 정의하여 이름 하나로 지정할 수 있는 여러 항목의 모임이다. 즉, 구조체 변수란 이름 하나로 데이터 형식 1개 이상을 하나로 보관해 놓는 그릇 역할을 하는 것이다. 그리고 구조체 배열은 이름 하나로 데이터 형식 1개 이상을 여러 개 보관해놓는 그릇 역할을 한다. c#에서는 구조체를 확장한 클래스(Class) 개념을 제공하기에 닷넷에 이미 ..
함수를 만들고 반복해서 사용하기 함수를 만드는 목적 중 하나는 반복 사용에 있다. 함수를 만들고 여러 번 호출해서 사용하는 방법을 알아보자. // () 안에 인자가 들어가면 함수 중복이 가능하다. static int Hi(string text) { Console.WriteLine(text); return 0; } 함수를 만들어 놓고 기능이 동일한 함수만 사용하지는 않는다. 호출할 때마다 조금씩 다른 기능을 적용할 때는 함수의 매개변수를 달리하여 호출할 수 있다. 매개변수(인자, 파라미터)는 함수에 어떤 정보를 넘겨주는 데이터를 나타낸다. 이러한 매개변수는 콤마를 기준으로 여러 개 설정할 수 있으며, 문자열과 숫자 등 모든 데이터 형식을 사용할 수 있다. - 매개변수(인자, 파라미터)가 없는 함수 : 매개..
함수(Function) 함수(Function) 또는 메서드(Method)는 재사용을 목적으로 만든 특정 작업을 수행하는 코드 블록이다. 함수를 부르는 다양한 명칭 함수(Function) 메서드(Method) 프로시저(Procedure) 서브루틴(Subroutine) 서브모듈(Submodule) 프로그래밍을 하다 보면 같은 유형의 코드를 반복할 때가 많다. 이 코드들을 매번 입력하면 불편하고 입력하다 실수도 할 수 있다. 이때 '함수'를 사용한다. 프로그래밍 언어에서 함수는 어떤 동작 및 행위를 표현한다. 함수의 사용 목적은 코드 재사용에 있다. 한 번 만들어 놓은 함수는 프로그램에서 한 번 이상 사용할 수 있다. 지금까지 사용한 Main() 메서드는 c#의 시작 지점을 나타내는 특수한 목적의 함수로 볼 ..