[C#] null๊ณผ is, as
nullable
null์ ์๋ฌด๊ฒ๋ ๊ฐ๋ฆฌํค์ง ์์์ ์๋ฏธํ๋ ์ผ์ข
์ ์์ ํฌ์ธํฐ๋ค.
๊ทธ๋์ ๋ ํผ๋ฐ์ค ๋ณ์์๋ ์ฌ์ฉ์ ์๋ฌด๋ฐ ๋ฌธ์ ๊ฐ ์๋ค.
๊ทผ๋ฐ ๊ฐ ํ์
์ ๋ค๋ฃฐ ๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค.
int ๋ณ์๋ฅผ ๋ณด์. ์ฌ์ฉ์์๊ฒ์ ์ ์๊ฐ์ ๋ฐ์์ ์ฒ๋ฆฌ๋ฅผ ํด์ผํ๋ ์ํฉ์ด๊ณ , ์ฌ์ฉ์์๊ฒ์ ์๋ชป๋ ๊ฐ์ ๋ฐ์๊ฑฐ๋, ๋ฐ์์ง ์์์ ๊ฒฝ์ฐ๋ฅผ ์ด๋ป๊ฒ ํํํด์ผ ํ ๊น? 0? 0 ์์ฒด๋ ๊ฐ์ธ ์ํฉ์ด ์์ ์ ์๋ค.
C๋ null์ ๊ทธ๋ฅ 0์ผ๋ก ํํํด๋ฒ๋ฆฌ์ง๋ง๋.. C#์ ์ด ๋ถ๋ถ์์๋ ์๊ฒฉํ๊ฒ ์ฒ๋ฆฌ๋ฅผ ํ๋ค.
๊ทธ๋ฌ๋ฉด ๊ฐ ํ์
์์ ์๋ฌด๊ฒ๋ ์๋ค๋๊ฑธ ์ด๋ป๊ฒ ๋ํ๋ด์ผ ํ ๊น
์ด๋ด ๋ ๊ฐ ํ์
์ null์ ํํํ๊ธฐ ์ํด ์๊ธด๊ฒ nullable์ด๋ค.
์๋ ์ ๋ค๋ฆญ๋ฐฉ์์ผ๋ก
Nullable
์ด๋ฌ๋ฉด null์ ๋ด์ ์ ์๋ int ํ์
์ด ์์ฑ๋๋ค. ๊ทผ๋ฐ ์ฉ ๋ณด๊ธฐ ์ข์ง๋ ์๋ค.
์ฌ๊ธฐ์์ ์คํ์ ์น๋ฉด
int? num;
์ด๋ ๊ฒ ํํ๋๋ค.
๊ทผ๋ฐ ํท๊ฐ๋ฆด๋งํ๊ฒ ์ข ์์ผ๋ ๋ฌธ์๋ฅผ ์ฐธ๊ณ ํด๋ณด์
https://docs.microsoft.com/ko-kr/dotnet/csharp/programming-guide/nullable-types/using-nullable-types
Nullable ํ์ ์ฌ์ฉ(C# ํ๋ก๊ทธ๋๋ฐ ๊ฐ์ด๋)Nullable ํ์ ์ฌ์ฉ(C# ํ๋ก๊ทธ๋๋ฐ ๊ฐ์ด๋) ์ฝ๋ ๋ฐ 8๋ถ ์ฐธ๊ฐ์ nullable ํ์์ ๊ธฐ๋ณธ ํ์์ ๋ชจ๋ ๊ฐ๊ณผ ์ถ๊ฐ null ๊ฐ์ ๋ํ๋ผ ์ ์์ต๋๋ค. nullable ํ์์ ๋ค์๊ณผ ๊ฐ์ ๋ ๊ฐ์ง ๋ฐฉ๋ฒ ์ค ํ๋๋ก ์ ์ธ๋ฉ๋๋ค. System.Nullable
https://msdn.microsoft.com/ko-kr/library/b3h38hb0(v=vs.110).aspxNullable(T) ๊ตฌ์กฐ์ฒด (System)์ด ๋ฌธ์๋ ๊ธฐ๊ณ ๋ฒ์ญ์ ์ด์ฉํ์ฌ ๋ฒ์ญ๋์์ต๋๋ค. ๋ฌธ์๋ฅผ ์๋ฌธ์ผ๋ก ๋ณด๋ ค๋ฉด ์๋ฌธ ํ์ธ๋์ ์ ํํ์ธ์. ๋ง์ฐ์ค ํฌ์ธํฐ๋ฅผ ํ
์คํธ ์๋ก ์ด๋์์ผ ํ์
์ฐฝ์์ ์๋ฌธ ํ
์คํธ๋ฅผ ํ์ํ ์๋ ์์ต๋๋ค. ๋ฒ์ญ ์๋ฌธ Nullable 
As
as๋ ์บ์คํ
์ฐ์ฐ์๋ค. ์ด๊ฑด ๊ทธ๋ฅ ์๊ดํธ ์บ์คํ
๊ณผ๋ ๋ค๋ฅด๊ฒ ์ฐธ์กฐํ์
์ผ๋ก์ ๋ณํ๋ง ํ์ฉ์ ํ๋ค.
๊ทธ๋ฆฌ๊ณ ์คํจํ๋ฉด ์๋ฌ๊ฐ ์๋๋ผ null์ ๋ฐํํ๋ค.
์ด null์ ๋ฐํ๊ฐ๋ฅ์ฑย ๋๋ฌธ์ ์ฐธ์กฐํ์
์ผ๋ก๋ง ๋ณํ์ด ๋๋ ๊ฒ์ด๋ค.
์ฉ๋ฒ์ ๋๊ฐ ์ด๋ ๋ค.
๋ณํํ ๊ฐ as ๋ณํํ ํ์
Is
is๋ ์๋ ๊ทธ๋ฅ ํ์
๋ณํ ๊ฐ๋ฅ์ฌ๋ถ๋ง ์ฒดํฌํ๋ ์ฐ์ฐ์์๋ค.
๋ณ์ is ํ์ ;
ํด์ ๋ณํ์ด ๋๋ ์ํฉ์ด๋ฉด true๋ฅผ ๋ฐํํ๊ณ ๋์ด์๋๋ฐ,
๋ฒ์ 7.0๋ถํฐ as์ ๊ธฐ๋ฅ์ ์ด๋์ ๋ ํฌํจํ๊ฒ ๋์๋ค.
๋ณ์ is ํ์
๋ฐ์ธ๋ฉ๋ณ์;
ํด์ is์ ๊ฒฐ๊ณผ๊ฐ true๋ฉด ์ ๊ธฐ๋ค ๋ฐ์ธ๋ฉ์ ํด์ค๋ค.
if์ ์กฐ๊ฑด๋ฌธ ๋ด์๋ ์ฌ์ฉ์ด ๊ฐ๋ฅํ๋ค. ์ด๊ฑฐ๋ ํจํด๋งค์นญ์ด๋ผ๊ณ ๋ถ๋ฅด๋๋ผ