์ „์ฒด ๊ธ€

์ „์ฒด ๊ธ€

    35. ์ธํ„ฐํŽ˜์ด์Šค ๋‹ค์ค‘ ์ƒ์†

    ํด๋ž˜์Šค๋Š” ์—ฌ๋Ÿฌ ํด๋ž˜์Šค๋ฅผ ํ•œ๊บผ๋ฒˆ์— ์ƒ์†ํ•  ์ˆ˜ ์—†๋‹ค.(์ฃฝ์Œ์˜ ๋‹ค์ด์•„๋ชฌ๋“œ : ๋ชจํ˜ธ์„ฑ ๋ฐœ์ƒ) ์ตœ์กฐ์˜ ํด๋ž˜์Šค(Ridable)๊ฐ€ ๋‘ ๊ฐœ์˜ ํŒŒ์ƒํด๋ž˜์Šค(Car, Plane)๋กœ๋ถ€ํ„ฐ ์ƒ์†๋ฐ›๊ณ , ์ด ๋‘๊ฐœ์˜ ํŒŒ์ƒ ํด๋ž˜์Šค๋ฅผ ๋‹ค์‹œ ํ•˜๋‚˜์˜ ํด๋ž˜์Šค(MyVehicle)๊ฐ€ ์ƒ์†ํ•˜๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค. ์—ฌ๊ธฐ์„œ MyVehicle๋Š” Car์˜ Ride()๋ฉ”์†Œ๋“œ๋ฅผ ๋ฌผ๋ ค๋ฐ›์„์ง€, Plane์˜ Ride()๋ฉ”์†Œ๋“œ๋ฅผ ๋ฌผ๋ ค๋ฐ›์„์ง€, ๋ชจํ˜ธํ•˜๋‹ค. public abstract class Ridable { public abstract void Ride(); } public class Car : Ridable { public void Run() { Console.WriteLine("๋ถ€๋ฆ‰๋ถ€๋ฆ‰"); } public override void Ride() { Run(); } }..

    34. ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ƒ์†ํ•˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค

    String.Format ๋ฉ”์„œ๋“œ (System) | Microsoft Docs (์ด๋ฒˆ ํŽ˜์ด์ง€ ์˜ˆ์ œ์—์„œ ์‚ฌ์šฉํ•œ String.Format ๋ฉ”์„œ๋“œ!) String.Format ๋ฉ”์„œ๋“œ (System) ์ง€์ •๋œ ํ˜•์‹์— ๋”ฐ๋ผ ๊ฐœ์ฒด์˜ ๊ฐ’์„ ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ๋‹ค๋ฅธ ๋ฌธ์ž์—ด์— ์‚ฝ์ž… ํ•ฉ๋‹ˆ๋‹ค.Converts the value of objects to strings based on the formats specified and inserts them into another string. String.Format ๋ฉ”์„œ๋“œ๋ฅผ ์ฒ˜์Œ ์‚ฌ docs.microsoft.com ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ƒ์†ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์€ ํด๋ž˜์Šค ๋ฟ์ด ์•„๋‹ˆ๋‹ค. ํด๋ž˜์Šค, ๊ตฌ์กฐ์ฒด๋Š” ๋ฌผ๋ก ์ด๊ณ  ์ธํ„ฐํŽ˜์ด์Šค๋„ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ƒ์†ํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ธฐ์กด์˜ ์ธํ„ฐํŽ˜์ด์Šค์— ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•œ ์ธ..

    33. ์ธํ„ฐํŽ˜์ด์Šค(1)

    33. ์ธํ„ฐํŽ˜์ด์Šค(1)

    https://youtu.be/8NhvqLl-o2A ํด๋ž˜์Šค๋Š” ๊ฐ์ฒด์˜ ์ฒญ์‚ฌ์ง„, ์ธํ„ฐํŽ˜์ด์Šค๋Š” ํด๋ž˜์Šค์˜ ์ฒญ์‚ฌ์ง„ ์ธํ„ฐํŽ˜์ด์Šค๋Š” ํด๋ž˜์Šค๊ฐ€ ํ•ด์•ผํ•˜๋Š” ํ–‰๋™(์ฆ‰, ๋ฉ”์†Œ๋“œ)์„ ๊ฒฐ์ • ์ธํ„ฐํŽ˜์ด์Šค๋Š” (๊ธฐ๋ณธ์ ์œผ๋กœ) ๋ฉ”์†Œ๋“œ ๊ตฌํ˜„์„ ๊ฐ–์ง€ ์•Š์Œ ์ธํ„ฐํŽ˜์ด์Šค๋Š” ํ•„๋“œ๋ฅผ ๊ฐ–์ง€ ์•Š์Œ ์ธํ„ฐํŽ˜์ด์Šค๋Š” ์•ฝ์†์ด๋‹ค. ์™œ๋ƒํ•˜๋ฉด ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ƒ์†ํ•˜๋Š” ์‹ค์ฒด ํด๋ž˜์Šค๋Š” ๋ฐ˜๋“œ์‹œ ์ธํ„ฐํŽ˜์ด์Šค์—์„œ ์„ ์–ธ๋œ ๋ฉ”์†Œ๋“œ๋ฅผ ๋ชจ๋‘ ๊ตฌํ˜„ํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ์‹ค์ฒด ํด๋ž˜์Šค๊ฐ€ ์–ด๋–ค ์ธํ„ฐํŽ˜์ด์Šค์˜ ํŒŒ์ƒ ํด๋ž˜์Šค์ธ์ง€๋ฅผ ์•Œ๊ณ  ์žˆ๋‹ค๋ฉด ๊ทธ ํด๋ž˜์Šค๊ฐ€ ์–ด๋–ค public ๋ฉ”์†Œ๋“œ๋ฅผ ์ œ๊ณตํ•˜๋Š”์ง€๋„ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ์Œ [๊ทธ๊ฒƒ์ด ์•ฝ์†์ด๋‹ˆ๊นŒ....(๋‚˜๋ฃจํ† ํ†ค)] ์ปค๋„ฅํ„ฐ๋Š” ๋‘ ๋ถ€ํ’ˆ์„ ์—ฐ๊ฒฐํ•˜๋Š” ์ค‘๊ฐ„ ๋ถ€ํ’ˆ ์ธํ„ฐํŽ˜์ด์Šค๋Š” ๋‘ ํด๋ž˜์Šค๋ฅผ ์ด์–ด์ฃผ๋Š” ์ปค๋„ฅํ„ฐ ์ธํ„ฐํŽ˜์ด์Šค๋Š” ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•œ์ธต ๋” ๊ฐ•๋ ฅํ•˜๊ฒŒ ๋งŒ๋“ค์–ด์ฃผ๋Š” ์š”์†Œ์ด๋‹ค. ๊ฐ์ฒด์ง€ํ–ฅ..

    ์ด๊ฒƒ์ด C#์ด๋‹ค 7์žฅ ์—ฐ์Šต๋ฌธ์ œ ์ฐธ๊ณ 

    ์ด๊ฒƒ์ด C#์ด๋‹ค(๊ฐœ์ •ํŒ) 7์žฅ ์—ฐ์Šต๋ฌธ์ œ : ๋„ค์ด๋ฒ„ ๋ธ”๋กœ๊ทธ (naver.com)

    32. ํŠœํ”Œ

    ํŠœํ”Œ๋„ ์—ฌ๋Ÿฌ ํ•„๋“œ๋ฅผ ๋‹ด์„ ์ˆ˜ ์žˆ๋Š” ๊ตฌ์กฐ์ฒด์ด๋‹ค. ํ•˜์ง€๋งŒ ํŠœํ”Œ์€ ํ˜•์‹ ์ด๋ฆ„์ด ์—†๋‹ค. ๊ทธ๋ž˜์„œ ํŠœํ”Œ์€ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ์ „์ฒด์—์„œ ์‚ฌ์šฉํ•  ํ˜•์‹์„ ์„ ์–ธํ•  ๋•Œ๊ฐ€ ์•„๋‹Œ, ์ฆ‰์„์—์„œ ์‚ฌ์šฉํ•  ๋ณตํ•ฉ ๋ฐ์ดํ„ฐ ํ˜•์‹์„ ์„ ์–ธํ•  ๋•Œ ์ ํ•ฉํ•˜๋‹ค. ํŠœํ”Œ์€ ๊ตฌ์กฐ์ฒด์ด๋ฏ€๋กœ ๊ฐ’ ํ˜•์‹์ด๋‹ค. ๊ฐ’ ํ˜•์‹์€ ์ƒ์„ฑ๋œ ์ง€์—ญ์„ ๋ฒ—์–ด๋‚˜๋ฉด ์Šคํƒ์—์„œ ์†Œ๋ฉธ๋˜๊ธฐ ๋•Œ๋ฌธ์— ํ”„๋กœ๊ทธ๋žจ์— ์žฅ๊ธฐ์ ์ธ ๋ถ€๋‹ด์„ ์ฃผ์ง€ ์•Š๋Š”๋‹ค๋Š” ์žฅ์ ์ด ์žˆ๋‹ค. 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;..

    ํ•„๋“œ, ๋ฉค๋ฒ„, ์ง€์—ญ๋ณ€์ˆ˜, ์ •์ ํ•„๋“œ, ์ •์  ๋ฉ”์†Œ๋“œ ๊ฐœ๋… ์ •๋ฆฌ

    C# ๊ฐœ๋…์„œ๋ฅผ ๋ณด๋‹ค๋ณด๋‹ˆ ํ•„๋“œ, ๋ฉค๋ฒ„, ์ง€์—ญ๋ณ€์ˆ˜, ์ •์ ํ•„๋“œ, ์ •์  ๋ฉ”์†Œ๋“œ ๊ฐœ๋…์„ ํ•œํŽ˜์ด์ง€์— ์ •๋ฆฌํ•ด๋†”์•ผ ์ถ”ํ›„ ํ˜ผ๋ž€์ด ์—†๊ฒ ๋‹ค ์‹ถ์–ด์„œ ์ด๋ ‡๊ฒŒ ์ •๋ฆฌํ•ด๋‘”๋‹ค. ํ•„๋“œ๋Š” ํด๋ž˜์Šค ์•ˆ์— ์„ ์–ธ๋œ ๋ณ€์ˆ˜๋“ค์„ ์ผ์ปซ๋Š”๋‹ค.(ํž™ ์˜์—ญ์— ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ• ๋‹น) ๋ฉค๋ฒ„: ํ•„๋“œ์™€ ๋ฉ”์†Œ๋“œ๋ฅผ ๋น„๋กฏํ•˜์—ฌ ํ”„๋กœํผํ‹ฐ, ์ด๋ฒคํŠธ ๋“ฑ ํด๋ž˜์Šค ๋‚ด์— ์„ ์–ธ๋˜๋Š” ์š”์†Œ๋“ค์„ ์ผ์ปซ๋Š”๋‹ค. ์ง€์—ญ ๋ณ€์ˆ˜: ๋ฉ”์†Œ๋“œ ๋‚ด๋ถ€์— ์„ ์–ธ๋œ ๋ณ€์ˆ˜์ด๋‹ค(์Šคํƒ ์˜์—ญ์— ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น) ์ •์  ํ•„๋“œ : static์œผ๋กœ ํ•œ์ •ํ•˜์ง€ ์•Š์€ ํ•„๋“œ๋Š” ์ž๋™์œผ๋กœ ์ธ์Šคํ„ด์Šค์— ์†Œ์†๋˜๋ฉฐ, static์œผ๋กœ ํ•œ์ •ํ•œ ํ•„๋“œ๋Š” ํด๋ž˜์Šค์— ์†Œ์†๋œ๋‹ค. ์ •์  ํ•„๋“œ๋ฅผ ๋งŒ๋“ค์–ด์„œ ์–ป๋Š” ์ด๋“: static์œผ๋กœ ์ˆ˜์‹ํ•œ ํ•„๋“œ๋Š” ํ”„๋กœ๊ทธ๋žจ ์ „์ฒด์— ๊ฑธ์ณ ํ•˜๋‚˜๋งŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ํ”„๋กœ๊ทธ๋žจ ์ „์ฒด์— ๊ฑธ์ณ ๊ณต์œ ํ•ด์•ผ ํ•˜๋Š” ๋ณ€์ˆ˜๊ฐ€ ์žˆ๋‹ค๋ฉด ์ •์  ํ•„๋“œ๋ฅผ ์ด์šฉํ•˜๋ฉด ..

    31. ๊ตฌ์กฐ์ฒด, ๋ณ€๊ฒฝ ๋ถˆ๊ฐ€๋Šฅ ๊ตฌ์กฐ์ฒด(readonly struct)

    C# ๋ณตํ•ฉ ๋ฐ์ดํ„ฐ ํ˜•์‹์—๋Š” ํด๋ž˜์Šค ๋ง๊ณ ๋„ ๊ตฌ์กฐ์ฒด๋ผ๋Š” ๊ฒƒ์ด ์žˆ๋‹ค. ๊ตฌ์กฐ์ฒด๋Š” ํด๋ž˜์Šค์˜ ์‚ฌ์ดŒ์ง€๊ฐ„์ฏค ๋˜๊ธฐ ๋•Œ๋ฌธ์— ํ•„๋“œ์™€ ๋ฉ”์†Œ๋“œ๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋Š” ๋“ฑ ์ƒ๋‹น ๋ถ€๋ถ„ ๋น„์Šทํ•˜๋‹ค. struct ๊ตฌ์กฐ์ฒด์ด๋ฆ„ { //ํ•„๋“œ //๊ตฌ์กฐ์ฒด } ๊ตฌ์กฐ์ฒด๋ฅผ ์„ ์–ธํ•˜๋Š” ์˜ˆ struct MyStruct { public int MyField1 public int MtField2 public void MyMethod() { //... } } ๊ตฌ์กฐ์ฒด์˜ ํ•„๋“œ๋ฅผ public์œผ๋กœ ์„ ์–ธํ–ˆ๋‹ค. ํด๋ž˜์Šค์—์„œ๋Š” ์€๋‹‰์„ฑ๋•Œ๋ฌธ์— ๋ชจ๋“  ํ•„๋“œ๋ฅผ ๋ฐ˜๋“œ์‹œ private๋กœ ์ž‘์„ฑํ•˜์˜€๋‹ค. ๋ฌธ๋ฒ•์ ์œผ๋กœ๋Š” ๊ตฌ์กฐ์ฒด๊ฐ€ ํด๋ž˜์Šค์™€ ์œ ์‚ฌํ•˜๊ธฐ๋Š” ํ•ด๋„, ์กด์žฌ ์ด์œ ๊ฐ€ ๋‹ค๋ฅด๋‹ค. ํด๋ž˜์Šค๋Š” ์‹ค์„ธ๊ณ„์˜ ๊ฐ์ฒด๋ฅผ ์ถ”์ƒํ™”ํ•˜๋ ค๋Š”๋ฐ ๊ทธ ์กด์žฌ์˜ ์ด์œ ๊ฐ€ ์žˆ์ง€๋งŒ ๊ตฌ์กฐ์ฒด๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ด๊ธฐ ์œ„ํ•œ ์ž๋ฃŒ๊ตฌ์กฐ๋กœ ์‚ฌ์šฉ๋œ๋‹ค. (๋”ฐ๋ผ์„œ ๊ตณ์ด..