안녕하세요
게임개발자가 되기위해 공부하고있는 구구입니다.
오늘은 지금까지 배웠던 C#의 함수와 배열의 내용을 정리하고 가고자 이렇게 정리노트를 쓰게되었습니다.
이전 정리노트에 있던 단축키는 그대로 가져온 뒤 추가할 예정입니다.
(Ctrl + F 로 찾아서 쓰시면 편해요)
- 메소드
static void Print() // 접근지정자 반환 데이터 형식 메소드명(매개변수, ·····)
{
Console.Write("Hello World");
}
- 특정 기능을 분리해서 처리
함수의 형태
- 리턴형 x, 파라미터 x
- 리턴형 데이터 o, 파라미터 x
- 리턴형 데이터 o, 파라미터 o
- 리턴형 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))
- 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];
- 행과 열 구분
- 이차원 배열 선언과 초기화
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};
- 배열의 크기가 가변적
- 직사각형(정사각형) 모양의 배열이 안나올 수 도 있음.
- 위와 같은 형태의 배열을 읽으려면 열의 개수가 서로 다르기 때문에 읽기 위해서는 for문이든 foreach문이든 2번 쓸
필요가 있음
- 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 |
댓글