C# ๋ฐฐ์ฐ๋ฉด์ ๊ฒ์ ๊ฐ๋ฐ์ ํ๊ณ ์๋ ํ์์ธ๋ฐ
C#์ ํ๋กํผํฐ๊ฐ ์๋์ฑ๊ณผ ํธ์์ฑ์ ์ก์์ค๋ค๊ณ ํ๋๋ฐ ์๋ฅผ ๋ค์ด์
private GameObject Character_Data { get; set; }
์ฒ๋ผ ์ฌ์ฉํ๋ฉด public ์ ์ธ๊ณผ ๋ค๋ฅธ๊ฒ ์๋๊ฒ ์๋๊ฐ์?
์๋๋ฉด ์ ํ๋๋ฅผ ๊ฐ์ง๊ณ ์๋ ํด๋์ค๋ฅผ ์์ํ๋ ํด๋์ค์์ ์ ๊ทผ ๋ชปํ๋ ๋ชฉ์ ์ผ๋ก ์ฌ์ฉํ๋ ๊ฑด๊ฐ์?
๋ ์ฌ๋งํ ๋ชจ๋ ํ๋์ ์ ๋ ๊ฒ ํ๋กํผํฐ๋ฅผ ์ ์ธํด์ฃผ์ด์ผ ํ๋์ง ๊ถ๊ธํฉ๋๋ค.
๋ง์ ์ ํ๋ธ ๊ฐ์ข๋ค์ ์ ๋ฐ ํ๋กํผํฐ๋ฅผ ์๋ตํ๋๋ฐ ์ดํ ์ฝ๋๊ฐ ๋ณต์กํด์ง๋ฉด ์ง๊ณ ๋์ ์๋์ฑ์ด ํ์ํ๋ค๊ณ ์๊ฐํด ์ ๋ถย ๋ฐ๊พธ๋๊ฑฐ๋ณด๋ค ์ฒ์๋ถํฐ ์ก๋๊ฒ ๋์๊ฑฐ ๊ฐ์๋ฐ ๋ชจ๋ ์ฝ๋์ ์ ๋ ๊ฒ ํ๋กํผํฐ๋ฅผ ์ ์ธํด์ฃผ์ด์ผ ํ๋์?
private์ ๋ค๋ฅธ ํด๋์ค์์ ์ ๊ทผ์ด ์ ๋๋๋ฐ ์ public๊ณผ ๊ฐ๋ค๊ณ ์๊ฐํ๋์?
์ผ๋จ private ํ๊ณ { get; set; }ํ๋ฉด ์ธ๋ถ์์ ํธ์ถ์ ๋ชปํจ. publicํ๊ณ ๊ฐ์๊ฑด ์๋. ์ฌ๋งํ ํ๋์ { get; set; }๋ฅผ ๋ถ์ฌ์ฃผ๋๊ฑด ์์ข์, { get; set; }๋ ํจ์์ฒ๋ผ ์ทจ๊ธ๋๊ธฐ์ ํธ์ถ์คํ์ ์์ด๊ณ ์ ๊ฑฐ๋๋ ๊ฒ ์์ฒด๊ฐ ๋น์ฉ์ผ๋ก ์ฒ๋ฆฌ๋ ์ ์์ ํ๋ง๋๋ก ๋๋ ค์ง. ํ์ํ ๊ฒฝ์ฐ๊ฐ ์๋๋ผ๋ฉด { get; set; }์ ๋ถ์ด์ง ๋ง์ ๋ณ์์๋ค๊ฐ { get; set; }๋ง ๋ถ์ด๋ ๊ฒฝ์ฐ๋ ์ด๋์ ํธ์ถ์ด ๋๋์ง ํ์ธํ๊ธฐ ์ํด์๊ฐ ๋ง์. ๊ทธ๋ฅ ํ๋๊ฒ๊ณผ ๋ฌ๋ฆฌ { get; set; }๋ฅผ ๋ถ์ด๋ฉด ๋ก๊ทธ๋ฅผ ๋จ๊ธฐ๋ , ์ค๋จ์ ์ ์ฐ์ด์ ํธ์ถ์คํ์ ๋ณด๋ ํ๋กํผํฐ๋ฅผ ํ๋ฒ ํ์ ํธ์ถ์คํ์ด ๋ณด์.
์๋์ฑ์ผ๋ก ์ฌ์ฉ๋๋ ๊ฒฝ์ฐ๋ private class _instance; public class Instance { get { return _instance;} set { _instance = value;} } ์ฒ๋ผ ์ง์ ์ ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ณ๊ฒฝํ์ง์๊ณ , ๊ฐ์ ์ ์ผ๋ก ๋ณ๊ฒฝํ๊ธฐ ์ํด ์ฐ์ ๋ฌผ๋ก ์์ ์์์ฒ๋ผ ์ฐ๋ฉด { get; set; }๋ ๋ค๋ฅผ๊ฒ ์๊ณ , ์ข ๋ณํ์ ํด์ผํจ
์น์ ํ ๋ต๋ณ ๊ฐ์ฌํฉ๋๋ค! ๋ก๊ทธ ๋จ๊ธฐ๋๊ฑฐ๋ ์๋์ฑ ์ค๋ช ๊ต์ฅํ ์ดํด ์๋๊ฒ ์ค๋ช ํด์ฃผ์๋ค์ ๊ฐ์ฌํฉ๋๋ค
1. getter setter๋ฅผ ๋ชจ๋ ๊ตฌํํ๋ฉด Public๊ณผ ํฌ๊ฒ ๋ค๋ฅด์ง ์์ง๋ง getter, setter๋ฅผ ํตํ๋๊ฒ๊ณผ ์๋๊ฒ์ ์ ์๋ฏธํ ์ฐจ์ด๊ฐ ์๋ค๊ณ ์๊ฐ -> getter/setter์ ๋ด๋ถ ๊ตฌํ ๋ฐ ๋๋ฒ๊น ์ฉ์ด 2. ์ธ๋ถ์์ ํ์ํ ์ ๋ค๋ง ํ๋กํผํฐ๋ก ์ ์ธํ๊ณ ์ฌ์ฉํ๋ฉด ๋ ๋ฏ
get๋ง ๋๋๋ก ํ ์๋ ์๊ณ set๊ฐ์ ๊ฒฝ์ฐ์๋ set ๋ด๋ถ์์ ํ๋ฒ๋ ์์ธ์ฒ๋ฆฌ ํด์ฃผ๊ฑฐ๋ ๊ฐ๋ฅ. ์ด๋ฅผํ ๋ฉด ๊ฒฝํ์น๋ ์์๋ฉด ์๋๋ฉด if๋ฌธ์ผ๋ก 0์ผ๋ก ๋ฐ๊ฟ์ค๋ค๊ฑฐ๋