Unity 이론 (Nullable, Excedption, Generic Delegate, Bubble Sort)

로젠·2024년 5월 26일
0

게임 프로그래밍

목록 보기
46/49
post-thumbnail

GetUnderlyingType

GetUnderLyingType은 지정된 nullable 형식의 내부 형식을 리턴해주는 것이다.

Type type = Nullable.GetUnderlyingType(typeof(int)); //Value Type(x) -> null
type = Nullable.GetUnderlyingType(typeof(int?)); //Ref Type(O) -> 자료형

try

try는 오류가 발생하는 구문을 호출시켜 catch에서 해당 오류를 받아줄 수 있게 한다.

try
{
	character.Load();
}

catch

catch는 오류가 발생하면 실행되는 구문으로 원하는 오류 메시지를 호출시켜준다.

catch (CharacterObjectNullReferenceException e)
{
	print(e.Message);
	print("캐릭터 로딩 필요");
}
catch(IOException e)
{
	print(e.Message);
	print("캐릭터 파일 탐색 필요");
}

finally

finally는 오류에 상관없이 마지막에 반드시 호출되는 구문이다.

finally
{
	print("예외 처리 완료");
}

Exception

Exception은 예외라는 뜻으로 예외 처리를 할 때 해당 함수를 상속받는다. Exception은 예외 클래스들의 조상으로 모든 예외를 해당 형식으로 받을 수 있다.

when

when은 뒤에 조건문을 달아 해당 조건을 만족하면 해당 함수를 호출시킨다.

try
{
	character.Load();
}
catch (CharacterObjectNullReferenceException e) when(e.Code == 100)
{
	print(e.Message);
	print("캐릭터 로딩 필요 = 100");
}

Action

Action은 Generic Deligate로 Action 뒤에 원하는 형을 넣어 해당 형을 가진 함수를 호출할 수 있게 해주는 것이다. 해당 형은 총 16개까지 사용할 수 있다.

private Action<string, Color> action;
public void TestAction(string str, Color color)
{
	print($"TestAction : {str}, {color}");
}
private void Start()
{
	action = TestAction;
    action?.Invoke();
}

Func

Func는 Action과 비슷하지만 마지막에 return 해주는 형을 추가로 적어 중어야 한다. Func도 Action과 마찬가지로 16개의 형을 사용할 수 있다.

private string Func<int, Vector3, string> func;
private string TestFunc(int value, Vector3 vec)
{	
	return $"{value} / {vec}";
}
private void Start(0
{
	func = TestFunc;
    string str = func?.Invoke(10, new Vector3(1,2,3);
    print(str)
}

Predicate

Predicate는 하나의 형만 불러주고 무조건 bool로 리턴해주는 Delegate이다. 값 검증하는 것을 연결할 때 주로 사용한다. predicate는 무조건 bool을 리턴해주어야 하기 때문에 Nullable을 사용하면 안 된다.

private Predicate<int> predicate;
private bool Validate(int value)
{
	return value<10;
}
private Start()
{
	predicate = Validate;
    bool bCheck = predicate.Invoke(5);
    print(bCheck);
}

Bubble Sort

Bubble Sort는 버블 정렬로 맨 처음부터 오른쪽에 있는 숫자와 비교하여 왼쪽 숫자가 더 크면 두 숫자를 바꾸는 것이다. 이를 숫자의 총개수만큼 반복하여 정렬을 해준다.

0개의 댓글