[C#] 연산자 오버로딩 - operator 키워드

2023. 7. 22. 23:32C#

연산자 오버로딩은 클래스나 구조체가 연산자를 통해 사용될 수 있게 오버로딩하는 방법이다.

operator 키워드 사용법

operator 키워드는 무조건 public static 을 통해 선언하며, 오버로드할 연산자와 형태에 따른 로직을 구현하면

연산자를 호출했을때 자신이 원하는 값을 반환할수있다.

아래는 유니티의 Vector3 구조체에 구현된 연산자 오버로드 예시이다.

각 원소를 더해 대입한 새로운 구조체를 반환한다.
각 원소의 차이를 계산해 비교한다.

이외에도 유니티의 Fake Null을 구현하는데 사용되는등 아주 유용한 키워드이다.

사용예시

유니티에서 MyData라는 데이터 저장용 클래스를 만들었다고 생각해 보자.

1이라는 정보를 저장하고 있는 두 개의 클래스를 만들고 서로 비교해 보았을 때,

출력결과 : False

내가 원한 결과는 True지만, 서로 다른 객체기 때문에 결과가 False인 것을 알 수 있다.

이럴때 == 연산자를 오버로드하여 내가 원하는 정보를 반환할수있다.

참조가 아닌 원소를 직접 비교하면 원하는 결과를 얻을수있다.

오버로딩 가능한 연산자들

C#의 연산자 오버로딩은 비교, 산술, 논리 연산자등을 오버로딩 할 수 있다.

마이크로소프트 공식 문서를 참조하여 조사했다.

'C#' 카테고리의 다른 글

[C#] 생성자에서 다른 생성자 호출하기  (0) 2023.08.10
[C#] params 키워드  (0) 2023.08.01
[C#] 인덱서의 사용법  (0) 2023.07.26
[C#] const 키워드와 readonly 키워드  (0) 2023.07.24
[C#] Obsolete 어트리뷰트의 사용법  (0) 2023.07.17