๐ Tech
[C# 7.0] ์๋ก์ด ๊ธฐ๋ฅ (4) - ์ข ๋ฃ์(Deconstructor), ref local, ref return
C# 7.0์ ์๋ก์ด ๊ธฐ๋ฅ 6. ์ข ๋ฃ์(Deconstructor) ์ข ๋ฃ์(Deconstructor)๋ ์์ฑ์(Constructor)์ ๋์นญ์ ์ธ ๊ฐ๋ ์ด์ง๋ง ํ๊ดด์(Destructor)์๋ ๋ค๋ฅด๋ค. ์์ฑ์๋ ๋ณดํต ์ธ๋ถ์์ ์ ๋ ฅ ํ๋ผ๋ฏธํฐ๋ฅผ ๋ฐ์๋ค์ฌ ์ด๋ฅผ ํ๋์ ์ ์ฅํ๋ ์ญํ ์ ํ๋ค. ์ข ๋ฃ์๋ ํ๋์ ๊ฐ๋ค์ ์ธ๋ถ๋ก ์ ๋ฌํ๋ ์ญํ ์ ํ๋ค. ํ๊ดด์๋ ๋ถํ์ํ ๋ฆฌ์์ค๋ฅผ ์ ๊ฑฐํ๋ ์ญํ ์ ํ๋ค. namespace ConsoleApp1 { class Program { static void Main(string[] args) { BasicInfo person = new BasicInfo(1, "Lee", 10); var (id, name, age) = person; WriteLine($"{id} - {name}"); } }..
[C# 7.0] ์๋ก์ด ๊ธฐ๋ฅ (3) - out ํ๋ผ๋ฏธํฐ, ๋ฆฌํฐ๋ด ํํ
C# 7.0์ ์๋ก์ด ๊ธฐ๋ฅ 4. out ํ๋ผ๋ฏธํฐ ์ด์ ๋ฒ์ ์์๋ ๋ฉ์๋ ํธ์ถ ์ out ํ๋ผ๋ฏธํฐ๋ฅผ ์ฌ์ฉํ ๋ ๋ฏธ๋ฆฌ ์ ์ธ ํ ์ฌ์ฉํด์ผ ํ๋ค. ์ด๋ ํจ์๋ฅผ ํธ์ถํ๋ ๋ฌธ์ฅ ๋ฐ์ ๋ณ์๋ฅผ ์ ์ธํจ์ผ๋ก์จ ๋ณ์๊ฐ ์ฌ์ฉ๋๋ ๋ฒ์๋ฅผ ๋ช ์์ ์ผ๋ก ์ง์ ํ๋ ์ด์ ๋ ์์๋ค. ํฐ ๋ฌธ์ ๋ ์๋์ง๋ง ๋ฒ๊ฑฐ๋กญ๊ฒ ๋๊ปด์ง ๋๊ฐ ์๋ค. C# 7.0์์๋ ๋ฉ์๋ ํธ์ถ ์ ํ๋ผ๋ฏธํฐ ํ์ ์ out๊ณผ ํจ๊ป ์ง์ ํ ์ ์๋๋ก ํ์๋ค. ์ด๋ ๊ฒ ์ง์ ๋ ํ๋ผ๋ฏธํฐ๋ ์์ ์ ๋๋ฌ์ผ ๋ธ๋ก ๋ด์์๋ง ์ฌ์ฉ ๊ฐ๋ฅํ๋ค. void Test() { // ์ด์ ๋ฐฉ์ //int x, y; //GetXY(out x, out y); // out ํ๋ผ๋ฏธํฐ GetXY(out int x, out int y); Console.WriteLine($"{x},{y}"); } out ํ๋ผ๋ฏธํฐ ..
[C# 7.0] ์๋ก์ด ๊ธฐ๋ฅ (2) - ํํ(Tuple), ๋ก์ปฌ ํจ์(Local Function)
C# 7.0์ ์๋ก์ด ๊ธฐ๋ฅ 2. ํํ(Tuple) ์ด์ ๋ฒ์ ์์๋ ๋ฉ์๋์์ ํ๋์ ๊ฐ๋ง์ ๋ฆฌํดํ ์ ์์ง๋ง, C# 7.0์์๋ ํํ์ ์ฌ์ฉํ์ฌ ๋ฉ์๋๋ก๋ถํฐ ๋ณต์ ๊ฐ์ ๊ฐ๋ค์ ๋ฆฌํดํ ์ ์๊ฒ ๋์๋ค. ๋ฉ์๋๋ฅผ ์ ์ํ ๋ ๋ฆฌํด ํ์ ์ด ๋ณต์ ๊ฐ์ด๋ฏ๋ก ํํ ๋ฆฌํด ํ์ (tuple return type) ํํ์ ์ฌ์ฉํ๊ฒ ๋๋๋ฐ, ์ด๋ ๊ดํธ ( ) ์์ ์ฌ๋ฌ ๋ฆฌํดํ์ ๋ค์ ์์๋๋ก ๋์ดํ๋ฉด ๋๋ค. ๋ฉ์๋ ์์์ ์ค์ ์ฌ๋ฌ ๊ฐ๋ค์ ๋ฆฌํดํ ๋๋ ๊ดํธ ( ) ์์ ์ฝค๋ง๋ก ๋ถ๋ฆฌํ๋ ํํ ๋ฆฌํฐ๋ด(tuple literal) ํํ์ ์ฌ์ฉํ์ฌ ์์๋๋ก ๋ฆฌํฐ๋ด ๊ฐ ํน์ ๋ณ์๋ค์ ๋์ดํ๋ฉด ๋๋ค. (int count, int sum, double average) Calculate(List data) // ํํ ๋ฆฌํด ํ์ (tuple re..
[C# 7.0] ์๋ก์ด ๊ธฐ๋ฅ (1) - ํจํด ๋งค์นญ
C# 7.0์ ์๋ก์ด ๊ธฐ๋ฅ ํจํด ๋งค์นญ ํํ (Tuple) ๋ก์ปฌ ํจ์ (Local Function) out ํ๋ผ๋ฏธํฐ ์๋ฆฟ์ ๋ถ๋ฆฌ์์ ์ด์ง ๋ฆฌํฐ๋ด Deconstructor ref local๊ณผ ref return async ์ปค์คํ ๋ฆฌํด ํ์ ํฅ์๋ Expression-bodied ํํ throw expression https://www.csharpstudy.com/Latest/CS7-new-features.aspx C# 7.0 ์๊ธฐ๋ฅ - C# ํ๋ก๊ทธ๋๋ฐ ๋ฐฐ์ฐ๊ธฐ (Learn C# Programming) ๋ณธ ์น์ฌ์ดํธ๋ ๊ด๊ณ ๋ฅผ ํฌํจํ๊ณ ์์ต๋๋ค. ๊ด๊ณ ํด๋ฆญ์์ ๋ฐ์ํ๋ ์์ต๊ธ์ ๋ชจ๋ ์น์ฌ์ดํธ ์๋ฒ์ ์ ์ง ๋ฐ ๊ด๋ฆฌ, ๊ทธ๋ฆฌ๊ณ ๊ธฐ์ ์ฝํ ์ธ ํฅ์์ ์ํด ์ฐ์ฌ์ง๋๋ค. www.csharpstudy.com 1. ํจํด(Patte..
[Unity] ๋ชจ๋ฐ์ผ ๊ฒ์ ์ฑ๋ฅ ์ต์ ํ 2ํธ
๋ชจ๋ฐ์ผ ๊ฒ์ ์ฑ๋ฅ ์ต์ ํ 2ํธ 1. ์์ ํ์ผ wav ์๋ณธ ์ฌ์ฉ ์ด์ฐจํผ ์ ๋ํฐ์์ ๋ค์ ์์ถ์ ํด์ฃผ๊ธฐ ๋๋ฌธ์ mp3๋ฅผ ์ผ์ ๋์ ์ด๋์ ํ๋ก์ ํธ์ ์ฉ๋์ด ์ค์ด๋ ๋ค๋ ๊ฒ ๋ฐ์ ์๋ค. ๊ทธ๋ ๋ค๊ณ ์ด๋ฏธ ์์ถ๋ mp3๋ฅผ wav๋ก ๋ฐ๊ฟ ํ์๋ ์๋ค. 2. ํ ์ค์ณ, 3D Mesh์ Read/Write Enabled ์ฒดํฌ๋ฐ์ค ๋นํ์ฑํ CPU์์ GPU๋ก ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฎ๊ธฐ๊ณ CPU์์๋ ๋ด๋ฆฐ๋ค. ํ์ฑํํ ๊ฒฝ์ฐ์๋ CPU์์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ด๋ฆฌ์ง ์์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ์ค๋ณต๋๋ค. ํ ์ค์ณ๋ฅผ ๋์ ์ผ๋ก ์กฐ์ํ๋ค๋ฉด ๋น์ฐํ ์ผ์ผ ํ์ง๋ง, ์๋๋ผ๋ฉด ๋นํ์ฑํํ๋ ๊ฒ์ด ์ข๋ค. 3. ํ๋ฉด ํด์๋ ์กฐ์ Screen.SetResolution(width, height, false); 4. Renderer.material ์ ๊ทผ ์ฃผ์ Renderer.materia..
[Unity] ๋ชจ๋ฐ์ผ ๊ฒ์ ์ฑ๋ฅ ์ต์ ํ 1ํธ
๋ชจ๋ฐ์ผ ๊ฒ์ ์ฑ๋ฅ ์ต์ ํ 1ํธ 1. string ํ์ฑ ํ ๋ ๋ฐ์ํ๋ ๊ฐ๋น์ง JSON์ด๋ XML์ ๋ฐ์ดํฐ ํ์ฑํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์๋ฐ, ์ด ๊ณผ์ ์์ ๊ฐ๋น์ง๊ฐ ๋ฐ์ํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ผ๋ฏ๋ก ๋น๋ ์ ์ ์๋ํฐ์์ ScriptableObject๋ก ๋ฐ์ดํฐ๋ฅผ ์บ์ฑํด๋๊ณ ์ฌ์ฉํ๋ ๊ฒ์ ์ถ์ฒํ๋ค. 2. ์ ๋๋ฉ์ดํฐ ๋ฑ์ ํ๋ผ๋ฏธํฐ๋ฅผ string์ผ๋ก ํธ์ถํ ๋ ๋ฐ์ํ๋ ๊ฐ๋น์ง animator.SetBool("Jump", true); ๋งค๋ฒ string์ผ๋ก ํธ์ถํ๋ฉด ๊ฐ๋น์ง๊ฐ ๋ฐ์ํ ์ ์๋ค. ID๋ก ์บ์ฑํด์ ํธ์ถํ๋ ๊ฒ์ ์ถ์ฒํ๋ค. 3. ์ค๋ธ์ ํธ ํ ๋ง๋ค ๋ ๋ถ๋ชจ ๋ณ๊ฒฝ Hierarchy ์ฐฝ์์ enable ๋ถ๋ชจ, disable ๋ถ๋ชจ ๋ง๋ค์ด์ ๋ถ๋ชจ ๊ณ์ ๋ฐ๊พธ๋ ํ์๋ ํ์ง ์๋ ๊ฒ์ด ์ข๋ค. ์๋ํ๋ฉด SetParent ํจ์๋ ๋น์ฉ์ ๊ฝค ๋ฌด..