C#) 람다 식에 대하여
·
Programming/C C# C++
람다 식람다 식이란 코드의 가독성과 간결성을 높이기 위해 사용하는 일종의 익명함수이다.정확히는 다음 그림과 같은 구조를 하고 있다. 우리가 이번에 알아볼 구조는 식 람다 ((parameters) => expression)와 문 람다 ((parameters) => { statements })의 두가지 형태이다. 식 람다앞서 설명했듯 식 람다는 ((parameters) => expression)의 형태로 이루어져 있다.여기서 parameters는 입력받을 매개변수를, expression은 실행할 내용을 의미한다. 예시를 통해 한번 알아보자. Func isEqual = (a, b) => a == b;Console.WriteLine(isEqual(3, 3)); 여기서 (a, b) => a == b; 부분이 람..
C#) 메서드와 매개변수
·
Programming/C C# C++
이번에 알아볼 것은 바로 메서드이다. C#에서는 메서드라 부르고 C/C++에서는 함수라고도 하는데, 특정한 동작을 수행하거나 특정 결과를 계산하는 일련의 구문 순서를 묶는 수단이다. 우리는 이 메서드들의 이름을 호출하여 사용할 수 있다.using UnityEngine;public class Test1 : MonoBehaviour{ public void Start() { int a = 10, b = 20; Debug.Log(Add(a, b)); } public int Add(int a, int b) { int c = a + b; return c; }}...이런 식으로 말이다. 이 경우 Add라고 하는 메서드를 Start메서드..
C#) C#에서의 배열 사용 방법
·
Programming/C C# C++
C#에서는 배열을 선언할 때 기존에 C와 C++에서 했던 방법과는 달리 자료형 바로 뒤에 대괄호를 붙이게 된다.int[] type;이런 식으로 말이다. 만약 2차원 배열이나 그 이상의 배열을 필요로 한다면,int[,] types;이런 식으로 콤마를 입력해서 차원 수를 늘릴 수 있다. 이 배열에 값을 할당하는것은 일반적으로 배열에 값을 할당하는 것처럼 선언과 동시에 초기화하면 되지만, 이미 선언된 배열에 값을 할당하는 경우 new 키워드를 사용하여 대입해야 한다. string[] languages;languages = new string[] {"C#", "C++"}; //문자 자체를 대입하는 방식languages = new string[9]; //배열의 개수만 대입하는 방식 그 외 사용법은 기존의 방식과 ..
C#) 캐스팅, 박싱, 언박싱
·
Programming/C C# C++
캐스팅캐스팅이란 변수의 자료형을 다른 자료형으로 변환하는 연산을 말한다.이 캐스팅에는 암시적 캐스팅과 명시적 캐스팅의 두 종류로 나뉘는데, 전자의 경우 단위가 작은 자료형에서 단위가 큰 자료형으로 캐스팅 하는경우 (float에서 double형으로 캐스팅 등등)가 있다.short a = 20;int b = a;이런 형식으로 말이다. 명시적 캐스팅의 경우 자료형의 형태가 다르거나 더 큰 자료형에서 작은 단위의 자료형으로 형 변환하는 경우 주로 사용한다.double a = 3.14;float b = (float) a;float c = 2.17;int d = (int) c;두 경우 모두 명시적 캐스팅이지만, 조금의 차이가 존재한다.전자의 경우 큰 단위(8바이트)에서 작은 단위(4바이트)로 자료형이 작아지기 때문..
C#) 값 형식과 참조 형식
·
Programming/C C# C++
C#은 데이터의 메모리 저장 방식에 따라 두 개의 타입으로 나뉘게 된다.바로 값 형식(Value Type)과 참조 형식(Reference Type)이다. 두 형식은 다음과 같은 차이점이 있다.값 형식(Value Type)참조 형식(Reference Type)변수에 값을 대입하는 데이터 형식int, double형 등등이 있다.데이터를 스택(Stack) 메모리에 할당한다.변수에 값 대신 값의 주소를 대입하는 데이터 형식대표적으로 object형이 있다.데이터를 힙(Heap) 메모리에 할당한다. 값 형식의 경우 데이터를 복사하여 저장하기 때문에, 원래 변수의 값을 두 번째 변수에 할당하면 원래 변수의 값 사본이 새로운 변수의 위치에 만들어진다. 따라서 첫 번째 변수를 변경해도 두 번째 변수의 값에는 영향을 주지..
C#) Null과 Void의 차이
·
Programming/C C# C++
Null이란 변수에 아무것도 설정되지 않았다는 것을 의미하는 상수를 말한다.예를 들어int T = Null;이런 식으로 선언을 한다면 T의 값은 아예 정의되어 있지 않다는 것을 의미한다.이 Null이라는 상수는 0과는 또 살짝 다른데, 0을 대입하게 되면 값 자체는 존재하지만 그 값이 0인 것을 의미하고, Null을 대입하면 값조차도 없다는 의미이다. Void의 경우에는 C++에서와 C#에서의 의미가 살짝씩 다르다.C++의 경우 포인터로써 사용할수 있기 때문에 메소드에서 어떤 데이터도 반환하지 않는다는 의미를 갖는데 반해,C#에서는 주로 데이터 형식을 지정해야 하지만, 실제로 반환되는 데이터가 없는 경우 사용한다. 일반적으로 주로 사용하는 void 포인터의 경우 가리키는 대상이 없는 포인터라는 의미를 가..