C#/์ด๊ฒ์ด C#์ด๋ค
55. foreach๊ฐ ๊ฐ๋ฅํ ๊ฐ์ฒด ๋ง๋ค๊ธฐ
foreach ๋ฌธ์ for ๋ฌธ ์ฒ๋ผ ์์์ ์์น๋ฅผ ์ํ ์ธ๋ฑ์ค ๋ณ์๋ฅผ ์ ์ธํ ํ์ ์๋ค. foreach๋ฌธ์ ์๋ฌด ํ์์ ๊ฐ์ฒด์์๋ ์ฌ์ฉํ ์ ์๋ ๊ฒ์ด ์๋๋ค. ๋ฐฐ์ด์ด๋ ๋ฆฌ์คํธ ๊ฐ์ ์ปฌ๋ ์ ์์๋ง ์ฌ์ฉํ ์ ์๋ค. foreach๋ฌธ์ด ๊ฐ์ฒด ๋ด์ ์์๋ฅผ ์ํํ๊ธฐ ์ํด์๋ foreach๋ฌธ๊ณผ์ ์ฝ์์ ์ง์ผ์ผ ํ๋๋ฐ, ์ฝ์์ด ๋ญ๋ค? ์ธ.ํฐ.ํ.์ด.์ค foreach ๊ตฌ๋ฌธ์ IEnumerable์ ์์ํ๋ ํ์๋ง ์ง์ํ๋ค. ์ฆ, ํด๋์ค๋ IEnumerable์ ์์ํ๊ธฐ๋ง ํ๋ฉด foreach ๋ฌธ์ ์ด์ฉํด์ ์์๋ฅผ ์ํํ ์ ์๊ฒ ํ ์ ์๋ค๋ ์ด์ผ๊ธฐ์ด๋ค. IEnumerable ์ธํฐํ์ด์ค๊ฐ ๊ฐ๊ณ ์๋ ๋ฉ์๋๋ ๋ค์๊ณผ ๊ฐ์ด ๋จ ํ๋ ๋ฟ์ด๋ค. MyList๋ ์ด ๋ฉ์๋๋ฅผ ๊ตฌํํด์ผ ํ๋ค. ๋ฉ์๋ ์ค๋ช IEnumerator Get..
54. ์ธ๋ฑ์
์ธ๋ฑ์๋ ์ธ๋ฑ์ค๋ฅผ ์ด์ฉํด์ ๊ฐ์ฒด ๋ด์ ๋ฐ์ดํฐ์ ์ ๊ทผํ๊ฒ ํด์ฃผ๋ ํ๋กํผํฐ์ด๋ค. ๊ฐ์ฒด๋ฅผ ๋ง์น ๋ฐฐ์ด์ฒ๋ผ ์ฌ์ฉํ๊ฒ ํด์ค๋ค. class ํด๋์ค์ด๋ฆ { ํ์ ์ ์ธ๋ฑ์ํ์ this[ํ์ index] //์ธ๋ฑ์ค์ ์๋ณ์๊ฐ ๊ผญ index์ผ ํ์์๋ค. ์ทจํฅ๊ป ์กฐ์ ! { get{ //index๋ฅผ ์ด์ฉํ์ฌ ๋ด๋ถ ๋ฐ์ดํฐ ๋ฐํ} set{ //index๋ฅผ ์ด์ฉํ์ฌ ๋ด๋ถ ๋ฐ์ดํฐ ์ ์ฅ} } } ์ธ๋ฑ์๋ ํ๋กํผํฐ์ฒ๋ผ ์๋ณ์๋ฅผ ๋ฐ๋ก ๊ฐ์ง์ง ์๋๋ค! ํ๋กํผํฐ๋ ๊ฐ์ฒด ๋ด์ ๋ฐ์ดํฐ์ ์ ๊ทผํ๋ ํต๋ก์ธ๋ฐ, ํ๋กํผํฐ๊ฐ ์ด๋ฆ์ ํตํด ๊ฐ์ฒด ๋ด์ ๋ฐ์ดํฐ์ ์ ๊ทผํ๊ฒ ํด์ค๋ค๋ฉด, ์ธ๋ฑ์๋ ์ธ๋ฑ์ค๋ฅผ ํตํด ๊ฐ์ฒด ๋ด์ ๋ฐ์ดํฐ์ ์ ๊ทผํ๊ฒ ํด์ค๋ค. ์ธ๋ฑ์์ ์ ์ธ ์ MyList๋ ๋ด๋ถ์ ์ ์ ํ์ ๋ฐฐ์ด์ ๊ฐ์ง๊ณ ์๊ณ , ์ธ๋ฑ์๋ฅผ ํตํด ์ด ๋ฐฐ์ด์ ์ ๊ทผํ๋ค. ์ธ๋ฑ์๋ฅผ ํตํด..
53. ์ปฌ๋ ์ (ArrayList, Queue, Stack, Hashtable)
์ปฌ๋ ์ ์ด๋ ๊ฐ์ ์ฑ๊ฒฉ์ ๋ ๋ฐ์ดํฐ์ ๋ชจ์์ ๋ด๋ ์๋ฃ๊ตฌ์กฐ๋ฅผ ๋งํ๋ค. public abstrack class Array : ICloneable, IList, ICollection, IEnumerable - ArrayList ๊ฐ์ฅ ๋ฐฐ์ด๊ณผ ๋ฎ์ ์ปฌ๋ ์ ์ด๋ค. ์ปฌ๋ ์ ์ ์์์ ์ ๊ทผํ ๋๋ [ ] ์ฐ์ฐ์๋ฅผ ์ด์ฉํ๊ณ , ํน์ ์์น์ ์๋ ์์์ ๋ฐ์ดํฐ๋ฅผ ์์๋ก ํ ๋นํ ์ ์๋ค. ํํธ, ๋ฐฐ์ด๊ณผ๋ ๋ฌ๋ฆฌ ์ปฌ๋ ์ ์ ์์ฑํ ๋ ์ฉ๋์ ๋ฏธ๋ฆฌ ์ง์ ํ ํ์ ์์ด ํ์์ ๋ฐ๋ผ ์๋์ผ๋ก ๊ทธ ์ฉ๋์ด ๋์ด๋๊ฑฐ๋ ์ค์ด๋ ๋ค. ArrayList์์ ๊ฐ์ฅ ์ค์ํ ๋ฉ์๋๋ Add(), RemoveAt(), Insert() ์ด๋ ๊ฒ ์ธ ๊ฐ์ด๋ค. Add() : ์ปฌ๋ ์ ์ ๊ฐ์ฅ ๋ง์ง๋ง์ ์๋ ์์ ๋ค์ ์ ์์๋ฅผ ์ถ๊ฐ RemoveAt() : ํน์ ์ธ๋ฑ์ค์ ..
52. ๊ฐ๋ณ๋ฐฐ์ด
์ง์ ํ ์๋ฏธ์์ ๋ฐฐ์ด์ ์์๋ก ๊ฐ๋ ๋ฐฐ์ด์ ๊ฐ๋ณ ๋ฐฐ์ด์ด๋ค. ๊ฐ๋ณ ๋ฐฐ์ด์ ๋ค์ํ ๊ธธ์ด์ ๋ฐฐ์ด์ ์์๋ก ๊ฐ๋ ๋ค์ฐจ์ ๋ฐฐ์ด๋ก ์ด์ฉ๋ ์ ์๋ค. ๊ฐ๋ณ ๋ฐฐ์ด์ ๋ค์ฐจ์ ๋ฐฐ์ด๊ณผ ๋ฌ๋ฆฌ ๋ฐฐ์ด์ ์์๋ก ์ฌ์ฉํด ์ ๊ทผํ ์ ์๋ค. ๊ฐ๋ณ ๋ฐฐ์ด์ ๋ค์๊ณผ ๊ฐ์ด ์ ์ธํ๋ค. ๋ฐ์ดํฐํ์[ ][ ] ๋ฐฐ์ด์ด๋ฆ = new ๋ฐ์ดํฐํ์[๊ฐ๋ณ ๋ฐฐ์ด์ ์ฉ๋][ ]; 2์ฐจ์ ๋ฐฐ์ด์ [ ]๋ฅผ ํ๋๋ง ์ฐ๊ณ ๊ทธ ์์ ์ฒจ์๋ฅผ ๋ ๊ฐ ์ฌ์ฉํ ๋ฐ๋ฉด, ๊ฐ๋ณ ๋ฐฐ์ด์ [ ]์ด ๋ ๊ฐ ์ด๋ค. ๊ฐ๋ณ ๋ฐฐ์ด์ ์์๋ก ์ ๋ ฅ๋๋ ๋ฐฐ์ด์ ๊ทธ ๊ธธ์ด๊ฐ ๋ชจ๋ ๊ฐ์ ํ์๊ฐ ์๋ค. ๊ทธ๋์ Jagged ๋ฐฐ์ด์ด๋ผ๊ณ ํ๋ ๊ฒ์ด๋ค. ์ฉ๋์ด 3๊ฐ์ธ ๋ฐฐ์ด jagged๋ฅผ ์ ์ธํ ๋ค์, jagged์ ๊ฐ ์์์ ํฌ๊ธฐ๊ฐ ๊ฐ๊ฐ ๋ค๋ฅธ ๋ฐฐ์ด๋ค์ ํ ๋นํ๋ค. 0๋ฒ ์์์๋ ๊ธธ์ด๊ฐ 5์ธ ๋ฐฐ์ด, 1๋ฒ ์์์๋ ๊ธธ์ด..
51. ๋ค์ฐจ์๋ฐฐ์ด
int[,,] array = new int[4, 3, 2] { { {0,1}, {2,3 }, {4,5 } }, { {6,7 }, {8,9 }, {10,11 } }, { {12,13 }, {14,15 }, {16,17 } }, { {18,19 }, {20,21 }, {22,23 } }, }; using System; namespace MoreOnArray { class MainApp { static void Main(string[] args) { int[,,] array = new int[4, 3, 2] { { {0,1}, {2,3 }, {4,5 } }, { {6,7 }, {8,9 }, {10,11 } }, { {12,13 }, {14,15 }, {16,17 } }, { {18,19 }, {20,21 },..
50. 2์ฐจ์ ๋ฐฐ์ด
2์ฐจ์ ๋ฐฐ์ด์ ๊ฐ๋ ์ ์ผ๋ก 2๊ฐ์ ์ฐจ์(์ธ๋ก+๊ฐ๋ก)์ผ๋ก ์์๋ฅผ ๋ฐฐ์นํ๋ค๊ณ ๋ ๋งํ๊ณ , 1์ฐจ์ ๋ฐฐ์ด์ ์์๋ก ๊ฐ๋ ๋ฐฐ์ด์ด๋ผ๊ณ ๋ ํ๋ค. 2์ฐจ์ ๋ฐฐ์ด์ ์ ์ธ ๋ฐ์ดํฐํ์[,] ๋ฐฐ์ด์ด๋ฆ = new ๋ฐ์ดํฐํ์[2์ฐจ์๊ธธ์ด, 1์ฐจ์๊ธธ์ด]; 1์ฐจ์์ ๊ธธ์ด๋ ๊ฐ๋ก ๋ฐฉํฅ, 2์ฐจ์์ ๊ธธ์ด๋ ์ธ๋ก ๋ฐฉํฅ. int[,] test = new int[2, 3]; test[0, 0] = 1; test[0, 1] = 2; test[0, 2] = 3; test[1, 0] = 4; test[1, 1] = 5; test[1, 2] = 6; int[2,3]์ ๊ธธ์ด๊ฐ 3์ธ 1์ฐจ์ ๋ฐฐ์ด์ ์์๋ก 2๊ฐ ๊ฐ๊ณ ์๋ 2์ฐจ์ ๋ฐฐ์ด์ด๋ผ๊ณ ์ฝ๋๋ค. (2์ฐจ์ ๋ฐฐ์ด์ ์ฝ๋์์ ์ฝ์ ๋๋ [] ์์ ์๋ ์ฐจ์์ ๊ธธ์ด๋ฅผ ๋ค์์๋ถํฐ ์ฝ์ผ๋ฉด ์ดํดํ๊ธฐ ์ฝ๋ค.) int[,] ..
49. Array๋ก ์ํ๋ฒณ ์ถ๋ ฅํ๋ ์์
using System; namespace MoreOnArray { class MainApp { static void PrintArray(System.Array array) { foreach (var e in array) Console.WriteLine(e); Console.WriteLine(); } static void Main(string[] args) { //'Z'๋ ์์คํค์ฝ๋๋ก 90, 'A'๋ 65์ด๋ค. ๋๋ฌธ์ ์ํ๋ฒณ ๊ฐ์๋ ๋ชจ๋ 90-65+1('Z'-'A'+1), ์ฆ 26์ด๋ค. char[] array = new char['Z'-'A'+1]; for (int i = 0; i < array.Length; i++) array[i] = (char)('A' + i); PrintArray(array); }..
48. System.Array
C#์์๋ ๋ชจ๋ ๊ฒ์ด ๊ฐ์ฒด์ด๋ค. ๋ฐฐ์ด๋ ๊ฐ์ฒด์ด๋ฉฐ, ๋ฐฐ์ด์ System.Array ํด๋์ค์ ๋์๋๋ค. ๋ค์ ์์ ๋ int ๊ธฐ๋ฐ์ ๋ฐฐ์ด์ด System.Array ํ์์์ ํ์๋์์์ ๋ณด์ฌ์ค๋ค. using System; namespace DerivedFromArray { class MainApp { static void Main(string[] args) { int[] array = new int[] { 10, 30, 20, 7, 1 }; Console.WriteLine($"Type of array : {array.GetType()}"); Console.WriteLine($"Base type of array : {array.GetType().BaseType}"); } } } ์ถ๋ ฅ ๊ฒฐ๊ณผ Type of array..
47. ๋ฐฐ์ด์ฐ๋ ์ด์ , ๋ฐฐ์ด ์ด๊ธฐํ ๋ฐฉ๋ฒ 3๊ฐ์ง
๋ณ์๋ฅผ ๋ช ํจ์ด๋ผ๊ณ ํ๋ค๋ฉด, ๋ฐฐ์ด์ด๋ ์ปฌ๋ ์ ์ ๋ช ํจ์ง์ด๋ผ๊ณ ํ ์ ์๋ค! ๋ช ํจ์ง์ด ์์ ์ฌ์์ ๋ช ํจ ๊ด๋ฆฌ ๊ณ ๋ฏผ์ ๋์ด์ฃผ๋ ๊ฒ์ฒ๋ผ ๋ฐฐ์ด๊ณผ ์ปฌ๋ ์ ์ ํ๋ก๊ทธ๋๋จธ์ ๋ฐ์ดํฐ ๊ด๋ฆฌ ๊ณ ๋ฏผ์ ๋์ด์ค๋ค. ๋ณ์๋ฅผ 300๊ฐ ์ ์ธํ์ง ๋ง๊ณ 300๊ฐ์ ์ฉ๋์ ๊ฐ์ง ๋ณ์๋ฅผ 1๊ฐ๋ง ์ ์ธํ๋๋ก ํ์. ๋ฐ์ดํฐํ์[] ๋ฐฐ์ด ์ด๋ฆ = new ๋ฐ์ดํฐํ์[์ฉ๋]; ๊ฐ์ ์ฑ๊ฒฉ์ ๋ฐ์ดํฐ๋ผ๋ฉด ๋ณ์๋ฅผ ์ฌ์ฉํ๋ ๊ฒ๋ณด๋ค ๋ฐฐ์ด๋ก ์ ์ํ ๋ค์ for๋ฌธ์ด๋ foreach๋ฌธ๊ณผ ํจ๊ป ์ฌ์ฉํ๋ ๊ฒ์ด ์ฝ๋๋ฅผ ํจ์ฌ ๋ ๊ฐ๊ฒฐํ๊ฒ ๋ง๋ค ์ ์๋ค. class MainApp { static void Main(string[] args) { float[] tests = new float[5]; tests[0] = 75; tests[1] = 69; tests[2] = 100; t..
46. ์ฑํฐ9 ์ฐ์ต๋ฌธ์
์ฐ์ต๋ฌธ์ 1 using System; namespace Ex9_1 { class NameCard { private int age; private string name; public int Age { get; set; } public string Name { get; set; } } class MainApp { static void Main(string[] args) { NameCard ACard = new NameCard(); ACard.Age = 20; ACard.Name = "๊น๊ฐ์"; Console.WriteLine($"{ACard.Name}์ ๋์ด๋ {ACard.Age}์ ๋๋ค."); } } } ์ถ๋ ฅ ๊ฒฐ๊ณผ ๊น๊ฐ์์ ๋์ด๋ 20์ ๋๋ค. ์ฐ์ต๋ฌธ์ 2 using System; namespace Ex9_1 {..