ย ย ย ย public Person Person => new Person();
ย ย ย ย public Person Person2 { get; } = new Person();
๋ง์ ์ฌ๋๋ค์ด ์์๊ฑฐ๋ ์๋๊ฑฐ๋ ๊ฐ๋ค๊ณ ์๊ฐํจ 8ใ 8
์์ ํ๋กํผํฐ๋ฅผ์ ์์ธํ ์ดํด๋ณด์!
ย ย ย ย public Person Person
ย ย ย ย {
ย ย ย ย ย ย get
ย ย ย ย ย ย {
ย ย ย ย ย ย ย ย return new Person();
ย ย ย ย ย ย }
ย ย ย ย }
ย ย ย ย private Person person2 = new Person();
ย ย ย ย public Person Person2
ย ย ย ย {
ย ย ย ย ย ย get { return person2; }
ย ย ย ย }
์์๊ฑฐ๋ ํธ์ถํ ๋๋ง๋ค ๊ณ์ ๊ฐ์ฒด๋ฅผ ๋ง๋ค์ด์ ์ฑ๋ฅ์์์ข๊ณ
์๋๋ ์์ฑ์์์ ๊ฐ์ฒด๋ฅผ๋ง๋ค๊ณ ๊ทธ๊ฑธ ํธ์ถํจ
ํ์ง๋ง ์์ฑ์์์ ๊ฐ์ฒด๋ง๋ค๊ธด ์ซ๊ณ
ํธ์ถํ ๋ ๋ฑ ํ๋ฒ๋ง ๊ฐ์ฒด๋ฅผ ๋ง๋ค์์์๊น!?
ย ย ย ย private Person person;
ย ย ย ย public Person Person => person ??= new Person();
๋
๋๋ค ๊ฒํฐ๋ก ๊ฐ์ฒด ์์ฑ์ ํ๋ ๊ฒ ์์ฒด๊ฐ ์ด๋ฏธ ๋ฌธ์ ์ธ๊ฒ ๊ฐ์๋ฐ.. - dc App
๊ฐํธํ๊ธฐ๋ฒ์ธ๋ฐ ์๋ชป์ฐ๋ฉด ์ํํ๋๊น ์๋์ฒ๋ผ์ฐ๋๊ฒ ๋ง๋ค๊ณ
ใ ใ ๊ทผ๋ฐ ์ ํ๋กํผํฐ๋ฅผ lazy init์ ์ํํ๋ ค๋ ๊ฑฐ์..? ์ฑ๊ธํค ํจํด ๊ฐ์ ๊ฒฝ์ฐ๊ฐ ์๋์ด์ ๋๋ค์์ ๊ฒฝ์ฐ ๊ทธ๋ดํ์๊ฐ ์๋ค๊ณ ์๊ฐ - dc App
๋๋ ์ด์๊ฐ์...ํ๋ฆฐ๋ง์ ์๋๋ฐ ์ ์ด์ ์์ฒ๋ผ ์ฐ๋์ฌ๋๋ ์์๊ฑฐ๊ณ 'ํธ์ถํ ๋๋ง๋ค'๋ฉด ์์ฃผ ํธ์ถํ๋ค๋๋ป์ธ๋ฐ ๊ตณ์ด lazy initํ ํ์๊ฐ ์๋ค์๊ฐํ๋๋ฐ
์๊ฐํด๋ณด๋ ๋๋ ์ง์ฐํ๊ฐ๋๋งค ์ ๋ ๊ฒ ์จ๋ณธ์ ์์๋ค. ๋ MVVM Commaind bindingํ ๋ private์ Command๊ฐ์ฒด๋ง๋ค๊ณ ๊ทธ ์๋ get property ๋ถ์ด๋๊ฒ ์ฝ๋๊ฐ ์กด๋ ๋๋ฌ์์ ??=๋ก ์ฝ๋๊น๋ํ๊ฒ ๋ง๋ค๋ ค๊ณ ์ ๋ ๊ฒ ์ป์. ๊ทธ๋ฅ => new ์ด๊ฑฐ๋ {get}=new ์ด๊ฑฐ๋ ์์ ํ ๋ค๋ฅด๋ค๋ ๊ธ์
ํ ์คํธ ๋น๋ํ ๋ ์์ฐ๋ ๊ฐ์ฒด๋ ์์ ์๋ง๋ค๋ ค๊ณ ์ ๋ด๋ ์์. ๋ค ๋ง๋ค์ด๋์ผ๋ฉด ์๊ฐ ์ค๋๊ฑธ๋ ค์ ใ ใ
์์งํ => new ์ฐ๋ ์ ๋ ์ด๊ฑฐ ๋ด๋ ๋ญ์๋ฆฐ์ง ๊ฐ์ ๋ชป์ก์๋ฏ ใ ใ ใ ใ ใ
์ ๋ => ์ฒจ๋ด
์์ฑํ ๋๋ ๋ด๊ฑธ๋ก ๋ณํ๋ด
์ด๋ค๊ฒ ํ๋ฆฌ๋ค ๋ง๋ค๋ณด๋ค๋ ์ฌ์ฉ๋ฒ์ด ์๋ก ๋ค๋ฅธ๊ฑฐ์ง ใ ใ ๋ ์ด์ง ์ด๊ธฐํ ํ ๊บผ๋ฉด public Lazy Person {get;} = new Lazy(() => new Person()).Vlaue; ์ฐ์