๋ผ์ด๋๊ฐ == null ์ธ๋ ๊ฒฝ๊ณ ใ ใด๋์๋์ ๊ฑฐ์ฌ๋ ค์ ๋๋ is null ์ฐ๋์ค
if (object) ์ด๊ฑฐ๋ก ๋์ฒดํฌ๋ ๋ง์ด ํ๋๋ฐ
์งํผํฐ๊ฐ ์ด์ง๊ฑฐ๋ฆฌ๋ ํ์ง๋ง๋ผ๋๋ผ
๊ทธ๋ ๋
์ด์ ๋ ๋ค์ด๋ ์ ๋ชจ๋ฅด๊ฒ ์
๊ทธ๋ฆฌ๊ณ ์ฝ๋ ์ฐ๋ค๋ณด๋ฉด
if (object == null) ์ ๋ชป์ฐ๋๋ฐ, if (object is null)์ ํ์ฉ๋๋๊ฒฝ์ฐ๊ฐ ์๋๋ผ
is null, is not null ์ด๋ ๊ฒ
ํด๋์ค a๊ฐ ์์. a๋ฅผ ๋ณ์ v1, v2๋ก ์ ์ธํจ. v1 == v2 ์ด๋ ๊ฒ ํ๋ฉด ๋๊ฐ์ ๊ฐ์ด ๊ฐ์์ง๋ฅผ ํ์ ํ๊ฑฐ๋ ==๋ฅผ ์ฌ์ ์ํด์ a์์ ๋ณ์๋ง ๋น๊ตํ๋๋ก ์ฝ๋๋ฅผ ์ง๋ ๊ฒฝ์ฐ๊ฐ ์์. ์ ๋ํฐ ์ค๋ธ์ ํธ๋ ==๋ฅผ ์ฌ์ ์ํด์ ์ฌ์ฉํจ. ๋์ ์ฒดํฌํ ๋ ค๊ณ == ๋ฅผ ์ฌ์ฉํ๋ฉด ์ฌ์ ์๋๊ฑธ ๋ถ๋ฅด๊ธฐ ๋๋ฌธ์ ๋ฌธ์ ๊ฐ ๋ฐ์๋จ. v1 ์์ฒด๊ฐ ๋์ธ์ง ์๋์ง๋ฅผ ํ์ธํ๋ ค๋ฉด == ๋ณด๋ค๋ null์ ํ์ธํ ์ ์๋ ๋ฌธ๋ฒ์ ์ฐ๋๊ฒ ์ข๋ค๋ ๋ง.
์ ๋ํฐ ์คํฌ๋ฆฝํธ ๊ด๋ จ์ผ๋ก ์ฑ์งํผํฐ์ ๋ญ ๋ฌผ์ด๋ณผ ๋ ๊ทธ๋ฅ C#์ด๋ผ๊ณ ํ์ง๋ง๊ณ ์ ๋ํฐ c# ํ๊ฒฝ์ด๋ผ๊ณ ํ๋ ๊ฒ ์ข์ ์ ๋ํฐ์์ UnityEngine.Object ์์๋ฐ์์ ๋ง๋ค์ด์ง๋ ๋ชจ๋ ์ค๋ธ์ ํธ๋ fake null์ด๋ ๊ฒ ๋ค์ด๊ฐ๊ณ is null์ด๋ ?. ๋ฑ์ ์ฌ์ฉํ๋ฉด ์ค๋ธ์ ํธ๊ฐ ํ๊ดด๋๋ค๋ ๊ฑธ ์ ์์ ์ผ๋ก ๊ฒ์ถํ ์ ์์ ๊ฒฐ๋ก : ์ ๋ํฐ ์ฐ๋ฉด ๊ฑ == null ๋ง ์ฐ๊ธฐ
๋๋ฐ ์์ ์ฒจ์์ ??= ์ด๋ฐ๊ฑฐ๋ ?. ์ด๋ฐ๊ฒ๋ ์ข ์ข ์ป๋๋ฐ
์ ??= ๋ ์๊ณ ??๋ ์๊ณ ๋ค ์ ๋จ
์ฐธ๊ณ ๋ก Rider ์ฐ๋ฉด ์ด๋ฐ ๊ฑฐ ์ผ์ ๋ ๊ฒฝ๊ณ ๋์์ค
https://github.com/JetBrains/resharper-unity/issues/323
์.. ?? ์ ์ฐ๊ณ ์๋๋ฐ ๋จธ์ง
์ ์ฐ๊ณ ์๋ค๊ณ ์์ฌํ์ง๋ง๊ณ ์ง๊ธ๋ถํฐ๋ผ๋ ๊ตฌ์กฐ ๋ฐ๊พธ๋ ๊ฑธ ์ถ์ฒ ๋ถ๋ฐํ ์ ํฐ์ง๋ค๊ณ ๋ฐ๋ก ์ฐจ๊ณ ๋ ธ๋ ๊ฑฐ๋ ๋๊ฐ์ ๊ฑฐ๋ผ ์ธ์ ๊ฐ ๋ ํฐ์ง๊ฒ ๋๋ฉด ๊ทธ๋ ์์ธ ์ถ์ฒ๋ ํ๋ค์ด fake null ๊ฐ๋ ๋ฌด์ํ๋ฉด ๋์ค์ ๊ทธ ๋๊ฐ๋ฅผ ์น๋ฃฌ๋ค...
๋ด๊ฐ ์๊ธฐ๋ก ๋ณ์๊ฐ null ํ์ธ์ด ํ์ํ๋ฉด == null์ด ๋ง๊ณ , ํด๋์ค๋ฅผ ํ ๋นํ๋์ง ํ์ธํ๋ ค๋ฉด is null๋ก ์ฐ๋๊ฑธ๋ก ์๊ณ ์์
๋ผ์ด๋๊ฐ gameobject == null์ ๊ฒฝ๊ณ ๋ฅผ ๋ด๋ฑ๋ ์ด์ ๋ ์ฌ์ค์ null์ด ์๋๊ธฐ ๋๋ฌธ. ํด๋น ๊ฒ์ ์ค๋ธ์ ํธ๋ฅผ destroyํ๋ฉด ์ ๋ํฐ๋ ๋์ธ ์ค๋ธ์ ํธ๋ก ๋งํน์ํ๊ณ ๋ค์ ํ๋ ์์ ํด๋น ์ค๋ธ์ ํธ๋ฅผ ๋์ฒ๋ฆฌํ๋ค
์ด์ฐจํผ ==์ ๋ํด ์ค๋ฒ๋ผ์ด๋ ๋์ด ์๊ธฐ๋๋ฌธ์ ๊ทธ๋ฅ ์ฌ์ฉํด๋ ๋ฌด๋ฐฉํจ