KeyValuePair
[SerializableAttribute] public struct KeyValuePair
설정하거나 검색할 수 있는 키/값 쌍을 정의한다.
또한 Dictionary
Dictionary
[SerializableAttribute] public struct KeyValuePair
(addData[i]["PlayerName"] ?? string.Empty).ToString()addData[i]["PlayerName"] 가 null 이면 string.Empty가 처리된다.
public delegate Transform MapPosToT(int x, int y, int z);
StartCoroutine(Set_AreaTile((x, y, z) => CreateArea(x, y, z)));
IEnumerator Set_AreaTile(MapPosToT function)
{
~~
for (int j = 0; j < (int)AreaSize.y; j++)
{
Transform functionTile = function(i , j, 0);
if (functionTile != null)
{
~~
}
yield return null;
}
public Transform CreateArea(int x, int y, int z)
{
return GameObject.Instantiate(TilePrefab).GetComponent();
}
람다식은 컴파일러가 인자를 할당한다라고 생각하면 이해하기 쉽다.
int[][] jaggedArray = new int[3][];
jaggedArray를 사용하려면 먼저 요소를 초기화해야 합니다. 다음과 같이 요소를 초기화할 수 있습니다.
jaggedArray[0] = new int[5];
jaggedArray[1] = new int[4];
jaggedArray[2] = new int[2];
각 요소는 1차원 정수 배열입니다. 첫째 요소는 5개의 정수, 둘째 요소는 4개의 정수, 셋째 요소는 2개의 정수를 갖는 배열입니다.
초기 값을 사용하여 배열 요소를 값으로 채울 수도 있습니다. 이 경우 배열 크기를 지정할 필요가 없습니다. 예를 들면 다음과 같습니다.
jaggedArray[0] = new int[] { 1, 3, 5, 7, 9 };
jaggedArray[1] = new int[] { 0, 2, 4, 6 };
jaggedArray[2] = new int[] { 11, 22 };
|
두개다 동작 방식은 비슷합니다.
차이점은 abstract는 구현코드가 없습니다. 반대로 virtual은 구현코드가 있습니다.
abstract는 주로 인터페이스에서 주로 볼수 있습니다. 즉 상속받은 클래스에서 구현을 해줘야 한다는 겁니다. 구현 코드가 없으므로 인스턴스를 생성할 수가 없습니다.
virtual은 상속한 클래스에서 재정의 해서 사용할 수 있도록 하기 위해서 사용합니다. 상속받은 클래스에서 재정의를 하지 않아도 됩니다. 인스턴스를 생성할 수 있습니다.
|