C# 정리 노트 2(함수, 배열)
본문 바로가기
  • 게임 개발자가 되고싶은 구구
게임 개발 공부/개념 총 정리

C# 정리 노트 2(함수, 배열)

by gugu99 2021. 12. 5.
반응형

안녕하세요

게임개발자가 되기위해 공부하고있는 구구입니다.

 

오늘은 지금까지 배웠던 C#의 함수와 배열의 내용을 정리하고 가고자 이렇게 정리노트를 쓰게되었습니다.

이전 정리노트에 있던 단축키는 그대로 가져온 뒤 추가할 예정입니다.

 

(Ctrl + F 로 찾아서 쓰시면 편해요)


  • 메소드

static void Print()    // 접근지정자 반환 데이터 형식 메소드명(매개변수, ·····)

{

     Console.Write("Hello World");

}

 

- 특정 기능을 분리해서 처리

 

함수의 형태

 

  1. 리턴형 x, 파라미터 x
  2. 리턴형 데이터 o, 파라미터 x
  3. 리턴형 데이터 o, 파라미터 o
  4. 리턴형 x, 파라미터 o

 

  • Call by Value

- 값에 의한 호출

- 함수에서 값에 영향을 주지 않음

- 일반 함수

- void swap(int a, int b)

 

  • Call by Reference

- 주소에 의한 호출

- 함수에서 값에 영향을 줌

- ref키워드를 가지는 함수

- void swap (ref int a, ref int b)

 

  • out

static void InitNum(out int addNum)

- ref 키워드 처럼 레퍼런스(ref처럼 파라미터에 사용됨)

- 전달하는 변수 초기화 없이 사용 가능

 

※ 함수 내에서 기존의 값을 바꿔야 할 필요가 있다면 ref out을 써야 바뀜

 

  • 디폴트 매개 변수(default parameter)

static void PrintValue(int a, int b, int c = 100, int d = 0)

 

- 초기화 파라미터

- 반드시 파라미터 뒤에서부터 순차적으로 초기화

 

 

  • 메소드 오버로딩

- 메소드 이름이 중복

- 파라미터의 형식이 다름

- 파라미터의 수가 다름

 

ex)

static int Add(int a, int b)

static int Add(int a, int b, int c)

static int Add(float a, float b)

-> 위 3개는 서로다른 함수로 인식

 

 

  • params

int Total(params int[] values)

 

- 파라미터의 제한 없이 처리

- int를 배열첨자로 하므로서 파라미터를 원없이 쓸 수 있게 만듬)

 


  • 1차원 배열

int[] arrNum = new int[5]; // 배열이 5개

- 변수 선언이 많아지는 경우

- 동일한 데이터 형

- 배열의 GetType()

- 인덱스는 0부터 시작(0 ~ (N-1))

C#-1차원배열-인덱스-위치-변수선언-동일한데이터형-GetType()

  • 1차원 배열 선언과 초기화

-> 자주 쓰는 4가지 선언 방법

 

int[] arrNum = new int[3];

int[] arrNum = new int[]{0, 1, 2};

int[] arrNum = new int[3]{0, 1, 2};

int[] arrNum = new int[]{0, 1, 2};

 

 

 


  • 다차원 배열

int[,] arrNums = new int[3, 2];

- 행과 열 구분

 

C#-다차원배열-[,]-행과열구분

  • 이차원 배열 선언과 초기화

int[,] arrNum = new int[3, 2];

int[,] arrNum = new int[,]{{0, 1}, {2, 3}, {4, 5}};

int[,] arrNum = new int[3, 2]{{0, 1}, {2, 3}, {4, 5}};

int[,] arrNum = {{0, 1}, {2, 3}, {4, 5}};

 

- 이때 {0, 1}, {2, 3}, {4, 5}는 각각 하나의 행에 들어갈 값을 표현(따라서 3행 2열임을 확인가능)

 

 

 


  • 가변 배열

int[][] arrNum = new int[3][];

arrNum[0] = new int[2]{0, 1};

arrNum[1] = new int[4]{0, 1, 2, 3};

arrNum[2] = new int[]{0, 1, 2};

 

C#-가변배열-배열의크기가변적-for-foreach

 

- 배열의 크기가 가변적

- 직사각형(정사각형) 모양의 배열이 안나올 수 도 있음.

- 위와 같은 형태의 배열을 읽으려면 열의 개수가 서로 다르기 때문에 읽기 위해서는 for문이든 foreach문이든 2번 쓸

   필요가 있음

 

C#-가변배열-배열의크기가변적-for-foreach

 

 


- Call by Reference

 

- 리턴형 함수명(int[] 파라미터명)

ex) void Func(int[] arr)

함수에서 값을 바꾸게 되면 함수가 끝나도 그 값이 변경된 상태임

 

- 리턴형 함수명(int[,] 파라미터명)

- void Func(int[,] arr)

 

 


  • foreach - 반복문

foreach(자료형 식별자 in 배열)

{

 

}

- 읽기 전용

- 식별자는 이름

 

ex)

foreach(int data in arrNum)

{

 

}

 

- arrNum을 data(변수명)로 읽겠다는 의미


  • C#을 쓰면서 쓰게될 여러가지 단축키, 코드의 의미

 

 

using System = System을 사용하겠다고 미리알림, 선언된 네임스페이스 내부 개체들에 접근

 

namespace = 그룹화,동일한 함수의 이름 사용가능

 

class = 필드(변수를 묶어놓는 곳), 메소드(함수)가 포함된 곳, 프로그램을 구성하는 기본

 

; = 코드 문장의 끝

 

{} = 코드 블록(블록단위로 코드를 구분)

 

// = 한줄주석

 

/* */ = 여러줄 주석

 

static(함수속성) void(리턴형) Main(함수이름)(string[] args(파라미터, 매개변수))

= 가장 중요한 메소드, 최초의 진입점, 모든 프로그램은 메인 메소드가 반드시 존재

 

Ctrl + F5 = 디버그 하지 않고 시작

 

= = 대입하다

 

== = 같다

 

GetType = 실제 자료형이 어떤 자료형이 되었는지를 확인하기 위해서 사용( 변수명.GetType() )

 

Console.ReadLine() = 입력 ( ex)string inputNum = Console.ReadLine(); )

 

Console.Clear(); = 도스창에서 화면 지우기

 

Random rnd = new Random();

int rndNum = rnd.Next(0, 4);

= rnd값이 랜덤으로 정해지고 이때 rnd값이 0부터 3까지의 범위를 가지고 이 값들 중 하나가 rndNum에 들어감

 

변수명.ToString; = stirng으로 변경

 

자료형.Parse(변수명); = 원하는 자료형으로 변경

 

Convert.To자료형(변수형) = 원하는 자료형으로 변경

 

(숫자자료형)변수명 = 캐스트 연산자

 

const 자료형 변수명; = 상수 선언

 

enum 식별자(이름) = 열거형 데이터 형태

 

F12, alt+F12 = 함수로 이동하거나 함수를 보여주는 단축키

 

static void PrintValue(int a, int b,int c = 100, int d = 0) = 디폴트 매개변수

 

int Total(params int[] values) = params 를 이용한 파라미터의 제한 없이 처리

 

배열.Length = 해당 배열의 크기(길이)

 

string.Empty = string에 아무값도 없이 비우겠다는 뜻

 

public static void Clear(Array array, int index, int length); = 시작인덱스부터 length만큼 지워라

 

배열.Clear(Array array, int index, int length); = Array Clear 사용법

 

배열.GetLength(원하는 행) = 배열의 크기를 return

 

(캐스트)배열.Clone(); = 배열 복사, call by value, 기존의 형은 object형이라서 캐스트를 통한 형변환 필요

 

반응형

'게임 개발 공부 > 개념 총 정리' 카테고리의 다른 글

C# 정리노트 4(컬렉션)  (0) 2021.12.18
C# 정리 노트 3(클래스)  (0) 2021.12.17
C# 정리 노트 1  (0) 2021.11.30

댓글