์ ์ฒด ๊ธ
![[์ค๊ฐ์ ๊ฒ] ์ ๊ทผํ์ ์ internal์์ ๊ฐ์ ์ด์
๋ธ๋ฆฌ๋](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FOxLPI%2Fbtrs4N6aPWe%2F1koj2QgJ5xnwEv12E6LBk1%2Fimg.png)
[์ค๊ฐ์ ๊ฒ] ์ ๊ทผํ์ ์ internal์์ ๊ฐ์ ์ด์ ๋ธ๋ฆฌ๋
์ด์ ๋ธ๋ฆฌ ์ ์ ์ด์ ๋ธ๋ฆฌ ์ ์ ๋ฐ ์ด์ ๋ธ๋ฆฌ ๋ ํผ๋ฐ์ค๋ ์คํฌ๋ฆฝํธ๋ฅผ ์ด์ ๋ธ๋ฆฌ๋ก ๊ตฌ์ฑํ ์ ์๋ ์์ ์ ๋๋ค. ์ด์ ๋ธ๋ฆฌ๋ ์คํฌ๋ฆฝํธ์ ์ํด ์ ์๋๊ณ ๋ค๋ฅธ ์ด์ ๋ธ๋ฆฌ์ ๋ํ ๋ ํผ๋ฐ์ค๋ ์ ์ํ๋ ์ปดํ์ผ๋ ํด๋์ค์ ๊ตฌ์กฐ์ฒด๊ฐ ๋ค์ด ์๋ C# ์ฝ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋๋ค. C#์ ์ด์ ๋ธ๋ฆฌ์ ๋ํ ์ผ๋ฐ์ ์ธ ์ ๋ณด๋ [.NET์ ์ด์ ๋ธ๋ฆฌ]๋ฅผ ์ฐธ์กฐํ์ญ์์ค. ๊ธฐ๋ณธ์ ์ผ๋ก Unity๋ ๊ฑฐ์ ๋ชจ๋ ๊ฒ์ ์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์ ์ ์๋ ์ด์ ๋ธ๋ฆฌ์ธ Assembly-CSharp.dll๋ก ์ปดํ์ผํฉ๋๋ค. (๋ํ Unity๋ [๋ช ๊ฐ์ง ๋ ์๊ณ ์ ๋ฌธํ๋ ์ฌ์ ์ ์ ์ด์ ๋ธ๋ฆฌ]๋ ์์ฑํฉ๋๋ค.) ์ด ๋ฐฐ์ด์ ์๊ท๋ชจ ํ๋ก์ ํธ์ ์ ํฉํ์ง๋ง, ํ๋ก์ ํธ์ ์ฝ๋๋ฅผ ๋ ์ถ๊ฐํ ๊ฒฝ์ฐ ๋ช ๊ฐ์ง ๋จ์ ์ด ์์ต๋๋ค. ํ๋์ ์คํฌ๋ฆฝํธ๋ฅผ ๋ณ๊ฒฝํ ๋๋ง๋ค Unity๋ ๋ค๋ฅธ ๋ชจ๋ ์คํฌ๋ฆฝํธ๋ฅผ ๋ค์ ์ปดํ..
23. ์์, ์ฝ๋ ์ฌํ์ฉ, ๊ธฐ๋ฐ ํด๋์ค, ํ์ ํด๋์ค, base, sealed
ํด๋์ค๋ ๋ค๋ฅธ ํด๋์ค๋ก๋ถํฐ ์ ์ฐ์ ๋ฌผ๋ ค๋ฐ์ ์ ์๋ค.(ํ๋, ๋ฉ์๋, ํ๋กํผํฐ ๊ฐ์ ๋ฉค๋ฒ๋ค) ํ์ ํด๋์ค๋ ๊ฐ์ฒด๋ฅผ ์์ฑํ ๋ ๋ด๋ถ์ ์ผ๋ก ๊ธฐ๋ฐ ํด๋์ค์ ์์ฑ์๋ฅผ ๋จผ์ ํธ์ถํ ๋ค์ ์์ ์ ์์ฑ์๋ฅผ ํธ์ถํ๊ณ , ๊ฐ์ฒด๊ฐ ์๋ฉธ๋ ๋๋ ๋ฐ๋์ ์์๋ก(ํ์ํด๋์ค -> ๊ธฐ๋ฐ ํด๋์ค)์ข ๋ฃ์๋ฅผ ํธ์ถํ๋ค. : ๊ธฐ๋ฐ ํด๋์ค ๋จผ์ ์์ฑ๋๊ณ ๋ง์ง๋ง๊น์ง ๋ฒํฐ๋ค ๊ฐ์ฅ ๋์ค์ ์ข ๋ฃ์ ํธ์ถํจ! ๋ง์ฝ ๊ธฐ๋ฐ ํด๋์ค์ ์์ฑ์๊ฐ ๋งค๊ฐ๋ณ์๋ฅผ ์ ๋ ฅ๋ฐ๋๋ก ์ ์ธ๋์ด ์๋ค๋ฉด ํ์ ํด๋์ค์ ์ธ์คํด์ค๋ฅผ ์์ฑํ ๋ ํธ์ถ๋๋ ๊ธฐ๋ฐ ํด๋์ค์ ์์ฑ์์๋ ์ด๋ป๊ฒ ๋งค๊ฐ๋ณ์๋ฅผ ์ ๋ฌํ ์ ์์๊น. ์ด๋ด ๋ base ํค์๋๋ฅผ ์ฌ์ฉํ๋ฉด ๋๋ค. this ํค์๋๊ฐ "์๊ธฐ ์์ "์ ๊ฐ๋ฆฌํจ๋ค๋ฉด base๋ "๊ธฐ๋ฐ ํด๋์ค"๋ฅผ ๊ฐ๋ฆฌํจ๋ค. this๋ฅผ ํตํด ์๊ธฐ ์์ ์ ๋ฉค๋ฒ์ ์ ๊ทผํ ์ ์..
22. ์๋์ฑ, ์ ๊ทผ ํ์ ์
๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ 3๋ ํน์ฑ : ์๋์ฑ, ์์์ฑ, ๋คํ์ฑ ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ์๋ ํด๋์ค์ ์ฌ์ฉ์์๊ฒ ํ์ํ ์ต์์ ๊ธฐ๋ฅ๋ง ๋ ธ์ถํ๊ณ ๋ด๋ถ๋ฅผ ๊ฐ์ถ ๊ฒ์ ์๊ตฌํ๋ค. ์ด๊ฒ์ ์๋์ฑ์ด๋ผ๊ณ ํ๋ค. ํด๋์ค์ ์ ์ธ๋์ด ์๋ ํ๋์ ๋ฉ์๋ ์ค ์ด๋ค ๊ฒ๋ค์ ์ฌ์ฉ์์๊ฒ ๋ ธ์ถํ ๊ฒ์ด ์๋๊ฐ ํ๋ฉด ์ ๋๋ก ๋ ธ์ถ์ํค์ง ๋ง์์ผ ํ๋ ๊ฒ๋ค๋ ์๋ค. ์ ๊ทผ ํ์ ์๋ ๊ฐ์ถ๊ณ ์ถ์ ๊ฒ์ ๊ฐ์ถ๊ณ , ๋ณด์ฌ์ฃผ๊ณ ์ถ์ ๊ฒ์ ๋ณด์ฌ์ค ์ ์๋๋ก ์ฝ๋๋ฅผ ์์ํ๋ฉฐ ํ๋, ๋ฉ์๋๋ฅผ ๋น๋กฏํด ํ๋กํผํฐ ๋ฑ ๋ชจ๋ ์์์ ๋ํด ์ฌ์ฉํ ์ ์๋ค. C#์์ ์ ๊ณตํ๋ ์ ๊ทผ ํ์ ์๋ ๋ชจ๋ ์ฌ์ฏ๊ฐ์ง๋ก, ๋ค์๊ณผ ๊ฐ๋ค. ์ ๊ทผ ํ์ ์ ์ค๋ช public ํด๋์ค ๋ด๋ถ/์ธ๋ถ ๋ชจ๋ ๊ณณ์์ ์ ๊ทผํ ์ ์๋ค. protected ํด๋์ค์ ์ธ๋ถ์์๋ ์ ๊ทผํ ์ ์์ง๋ง, ํ์ ํด๋์ค์์๋ ์ ๊ทผ..
21. this, this() ์์ฑ์
"๋", "์ ๋" ... ์๊ธฐ ์์ ์ ์ง์นญํ ๋ "๋"๋ผ๊ณ ํ๋ค. this๋ ๊ฐ์ฒด๊ฐ ์์ ์ ์ง์นญํ ๋ ์ฌ์ฉํ๋ ํค์๋์ด๋ค. ๊ทธ๋ฌ๋๊น, ๊ฐ์ฒด ์ธ๋ถ์์๋ ๊ฐ์ฒด์ ํ๋๋ ๋ฉ์๋์ ์ ๊ทผํ ๋ ๊ฐ์ฒด์ ์ด๋ฆ(๋ณ์ ๋๋ ์๋ณ์)๋ฅผ ์ฌ์ฉํ๋ค๋ฉด, ๊ฐ์ฒด ๋ด๋ถ์์๋ ์์ ์ ํ๋๋ ๋ฉ์๋์ ์ ๊ทผํ ๋ this ํค์๋๋ฅผ ์ฌ์ฉํ๋ค. this๊ฐ ๊ฐ์ฒด ์์ ์ ์ง์นญํ๋ ํค์๋์ธ ๊ฒ์ฒ๋ผ, this()๋ ์๊ธฐ ์์ ์ ์์ฑ์๋ฅผ ์นด๋ฆฌํจ๋ค. this()๋ ์์ฑ์์์๋ง ์ฌ์ฉ๋ ์ ์๋ค. using System; using System.Collections; using System.Collections.Generic; using System.Globalization; using System.Linq; using System.Text; using ..
20. ์์ ๋ณต์ฌ(Shallow Copy)์ ๊น์ ๋ณต์ฌ(Deep Copy)
ํด๋์ค๋ ํ์์ด ์ฐธ์กฐ ํ์์ด๋ค. ์ฐธ์กฐ ํ์์ ํ ์์ญ์ ๊ฐ์ฒด๋ฅผ ํ ๋นํ๊ณ , ์คํ์ ์๋ ์ฐธ์กฐ๊ฐ ํ ์์ญ์ ํ ๋น๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ฐ๋ฆฌํจ๋ค. using System; using System.Collections; using System.Collections.Generic; using System.Globalization; using System.Linq; using System.Text; using System.Threading.Tasks; using static System.Console; namespace UsingOut { class MyClass { public int MyField1; public int MyField2; } class MainApp { static void Main(string[] arg..
![19. [static]์ ์ ํ๋์ ์ ์ ๋ฉ์๋](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcaA02p%2FbtrsYdxWivZ%2FnmW9v9ZUdSNehj7VhR4O91%2Fimg.png)
19. [static]์ ์ ํ๋์ ์ ์ ๋ฉ์๋
static์ ์ฌ์ ์ ์ผ๋ก '์ ์ '์ด๋ผ๋ ๋ป์ ๊ฐ์ง๊ณ ์๋ค.(์์ง์ด์ง ์๋๋ค.) C#์์ static์ ๋ฉ์๋๋ ํ๋๊ฐ ํด๋์ค์ ์ธ์คํด์ค๊ฐ ์๋ ํด๋์ค ์์ฒด์ ์์๋๋๋ก ์ง์ ํ๋ ํ์ ์์ด๋ค. ํ ํ๋ก๊ทธ๋จ ์์์ ์ธ์คํด์ค๋ ์ฌ๋ฌ ๊ฐ๊ฐ ์กด์ฌํ ์ ์์ผ๋ ํด๋์ค๋ ๋จ ํ๋๋ง ์กด์ฌํ๋ค. ๋๊ฐ์ ํด๋์ค๊ฐ ๋ ๊ฐ ์ด์ ์กด์ฌํ ์๋ ์๋ค. ์ด๋ค ํ๋๊ฐ ํด๋์ค์ ์์๋๋ค๋ ๊ฒ์ ๊ณง ๊ทธ ํ๋๊ฐ ํ๋ก๊ทธ๋จ ์ ์ฒด์์ ์ ์ผํ๊ฒ ์กด์ฌํ๋ค๋ ๊ฒ์ ์๋ฏธํ๋ค. ๋ค์ ํ๋ ํ๋(ํด๋์ค ์์ ์ ์ธํ ๋ณ์)๊ฐ ์ธ์คํด์ค์ ์์๋ ๊ฒฝ์ฐ์ ํด๋์ค์ ์์๋ ๊ฒฝ์ฐ์ ์์ ์ฝ๋๋ฅผ ๋ด๊ณ ์๋ค. static์ผ๋ก ํ์ ํ์ง ์์ ํ๋๋ ์๋์ผ๋ก ์ธ์คํด์ค์ ์์๋๋ฉฐ, static์ผ๋ก ํ์ ํ ํ๋๋ ํด๋์ค์ ์์๋๋ค. ์ ์ ํ๋๋ฅผ ๋ง๋ค์ด์ ์ป๋ ์ด๋: stati..
18. ๊ฐ์ฒด์ ์ถ๊ณผ ์ฃฝ์(์์ฑ์,์ข ๋ฃ์) + ์์ฑ์ ์ค๋ฒ๋ก๋ฉ
๊ฐ์ฒด๊ฐ ์์ฑ๋ ๋๋ ์์ฑ์๊ฐ ํธ์ถ๋๊ณ ์๋ฉธํ ๋๋ ์ข ๋ฃ์๊ฐ ํธ์ถ๋๋ค. ์์ฑ์๋ ํด๋์ค์ ์ด๋ฆ์ด ๊ฐ๊ณ ๋ฐํ ํ์์ด ์๋ค. ์์ฑ์์ ์๋ฌด๋ ํด๋น ํ์(ํด๋์ค)์ ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ ๊ฒ ๋ฟ์ด๊ธฐ ๋๋ฌธ์ด๋ค. using System; using System.Collections; using System.Collections.Generic; using System.Globalization; using System.Linq; using System.Text; using System.Threading.Tasks; using static System.Console; namespace UsingOut { class Cat { public Cat() { } } class MainApp { static void Main(strin..