[C#] null을 비교하기위한 여정3, ==과 is 그리고 Equals(,) 속도
·
STUDY/유니티
null 체크를 하기위해서 다양한 방법들을 알아보았습니다. 그러던 중 신기한 것을 발견하였죠. 바로 같은역할을 하는 친구들이 모두 속도가 다르단 것입니다! is, Equals ,== (ReferenceEquals의 경우에는 is와 속도가 거의 같아서 is로 대체하였습니다.) 테스트코드 테스트 코드 void Start() { Stopwatch sw = new Stopwatch(); sw.Start(); Test test1= TestClass1; for (int i=0;i Equals(object,null) > object == null 이렇게 결론이 나게됩니다. 자세한 함수의 코드는 잘 모르지만 나와있는 문서의 정보라던가 사람들의 이야기를 들어보고 정리한 결과, 해당 함수가 어떤 기능을 수행하는지를 알게되..
[C#] null을 비교하기위한 여정1, ==와 Equals()
·
STUDY/유니티
if (instance == null) { instance = this; } else if (instance != this) Destroy(gameObject); 싱글톤 코드를 작성하면서 들었던 의문이 있었습니다. ==대신에 Equals()를 써서 null인지를 체크할 수는 없을까? Equals로 인한 비교는 총 두가지 방법이 있습니다. 매개변수를 1개 쓰는것과 2개쓰는것 신기하게도 instance.Equals(null)를 쓰면 에러가 뜨지만 Equals(instance,null)을 쓰면 에러가 뜨지 않았습니다. 이유는 일단 instance는 null인 상태입니다. 그리고 그 null인 instance를 참조할려고하니 NullReferenceException 오류가 뜨는건 당연했죠. 하지만 instanc..