C#
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 {..
45. ์ถ์ํด๋์ค์ ํ๋กํผํฐ
์ถ์ํด๋์ค๋ ํด๋์ค์ฒ๋ผ ๊ตฌํ๋ ํ๋กํผํฐ๋ฅผ ๊ฐ์ง ์ ์๋ ํํธ, ์ธํฐํ์ด์ค์ฒ๋ผ ๊ตฌํ๋์ง ์์ ํ๋กํผํฐ๋ ๊ฐ์ง ์ ์๋ค.(์ถ์ ํ๋กํผํฐ) ์ถ์ ํ๋กํผํฐ ์ญ์ ์ธํฐํ์ด์ค์ ํ๋กํผํฐ์ ๋ค๋ฅผ ๊ฒ์ด ์๋ค.(ํ์ ํด๋์ค๊ฐ ํด๋น ํ๋กํผํฐ๋ฅผ ๊ตฌํํ๋๋ก ๊ฐ์ ) ์ถ์ ํด๋์ค์ ์ถ์ ํ๋กํผํฐ๋ ์ธํฐํ์ด์ค์ฒ๋ผ ๊ตฌํ์ ๋น์๋์ ๊ฒ ๋ง์ผ๋ก๋ ๋ง๋ค ์ ์๋ค.(C# ์ปดํ์ผ๋ฌ๊ฐ ์๋ ๊ตฌํ ํ๋กํผํฐ๋ก ๊ฐ์ฃผํ๊ณ ๊ตฌํ์ ์๋์ผ๋ก ์ฑ์ ๋ฃ์ผ๋ฏ๋ก... ์ถ์ ํ๋กํผํฐ๋ ๋ค์๊ณผ ๊ฐ์ด abstract ํ์ ์๋ฅผ ์ด์ฉํด ์ ์ธํ๋ค! abstract class ์ถ์ํด๋์ค์ด๋ฆ { abstract ๋ฐ์ดํฐํ์ ํ๋กํผํฐ์ด๋ฆ { get; set; } } ์ถ์ ํ๋กํผํฐ๋ฅผ ๊ฐ๋ ์ถ์ ํด๋์ค์ ์ด๋ฅผ ์์ํ๋ ํ์ ํด๋์ค ์์ ์ฝ๋ abstract class Product..
44. ์ธํฐํ์ด์ค์ ํ๋กํผํฐ
์ธํฐํ์ด์ค๋ ๋ฉ์๋ ๋ฟ๋ง ์๋๋ผ ํ๋กํผํฐ์ ์ธ๋ฑ์๋ ๊ฐ์ง ์ ์๋ค. ํ๋กํผํฐ๋ ์ธ๋ฑ์๋ฅผ ๊ฐ์ง ์ธํฐํ์ด์ค๋ฅผ ์์ํ๋ ํด๋์ค๊ฐ '๋ฐ๋์' ํด๋น ํ๋กํผํฐ์ ์ธ๋ฑ์๋ฅผ ๊ตฌํํด์ผ ํ๋ ๊ฒ์ ๋ฌผ๋ก ์ด๋ค. (๋น์ฐํ ์ด์ผ๊ธฐ์ด์ง๋ง)์ธํฐํ์ด์ค์ ๋ค์ด๊ฐ๋ ํ๋กํผํฐ๋ ๊ตฌํ์ ๊ฐ์ง ์๋๋ค. ์ธํฐํ์ด์ค์ ํ๋กํผํฐ ์ ์ธ์ ํด๋์ค์ ์๋ ๊ตฌํ ํ๋กํผํฐ ์ ์ธ๊ณผ ๊ทธ ๋ชจ์ต์ด ๋์ผํ๋ค. ๋ค์์ ์ธํฐํ์ด์ค์ ํ๋กํผํฐ ์ ์ธ ํ์์ด๋ค. interface ์ธํฐํ์ด์ค์ด๋ฆ { public ํ์ ํ๋กํผํฐ์ด๋ฆ1 { get; set; } public ํ์ ํ๋กํผํฐ์ด๋ฆ2 { get; set; } //... } ๋ค์์ ํ๋กํผํฐ๋ฅผ ๊ฐ์ง ์ธํฐํ์ด์ค์ ์ด๋ฅผ ์์ํ๋ ํ์ ํด๋์ค์ ์์ด๋ค. interface Iproduct { string ProductName { ge..
43. ๋ฌด๋ช ํ์
๋ฌด๋ช ํ์์ ํ์์ ์ ์ธ๊ณผ ๋์์ ์ธ์คํด์ค๋ฅผ ํ ๋นํ๋ค. ์ด ๋๋ฌธ์... ์ธ์คํด์ค๋ฅผ ๋ง๋ค๊ณ ๋ค์๋ ์ฌ์ฉํ์ง ์์ ๋ ๋ฌด๋ช ํ์์ด ์๊ธดํ๋ค. (๋ ๊ฐ ์ด์์ ์ธ์คํด์ค๋ฅผ ๋ง๋ค๋ ค๋ฉด class๋ struct๋ฅผ ์ด์ฉํด ์ด๋ฆ์ ๊ฐ์ง ํ์์ ๋ณ๋๋ก ๋ง๋ค์ด์ผ ํ๋ค.) ๋ฌด๋ช ํ์์ ์ var myInstance = new {Name="๋ฐ์ํ", Age="17"}; ๊ดํธ { ์ } ์ฌ์ด์ ์์์ ํ๋กํผํฐ ์ด๋ฆ์ ์ ๊ณ ๊ฐ์ ํ ๋นํ๋ฉด ๊ทธ๋๋ก ์ ํ์์ ํ๋กํผํฐ๊ฐ ๋๋ค. ์์ ๊ฐ์ด ์ ์ธํ ๋ฌด๋ช ํ์์ ์ธ์คํด์ค๋ ์ฌ๋ ๊ฐ์ฒด์ฒ๋ผ ํ๋กํผํฐ์ ์ ๊ทผํ์ฌ ์ฌ์ฉํ ์ ์๋ค. Console.WriteLine(myInstance.Name, myInstance.Age); ๋ฌด๋ช ํ์์์ ์ฃผ์ํ ์ ์, ๋ฌด๋ช ํ์์ ํ๋กํผํฐ์ ํ ๋น๋ ๊ฐ์ ๋ณ๊ฒฝ๋ถ๊ฐ๋ฅํ..
42. [ํด๋์ค/๋ ์ฝ๋]๋ก ๋ถ๋ณ๊ฐ์ฒด ๊ตฌํํ๊ธฐ
*๋ ์ฝ๋ ํํธ์ด์ง๋ง C# 9.0 ์ด์๋ถํฐ ์ง์ํ๋ ๊ฐ๋ ์ด๋ผ ๋ณธ ๋ธ๋ก๊ทธ์์๋ ํด๋์ค๋ก ๊ตฌํํ๋ ๋ฐ๋ง ๊ธฐ๋ก ๋จ๊ธฐ๊ธฐ๋ก ๊ฒฐ์ * ๋ถ๋ณ ๊ฐ์ฒด๋ ๋ด๋ถ ์ํ(๋ฐ์ดํฐ)๋ฅผ ๋ณ๊ฒฝํ ์ ์๋ ๊ฐ์ฒด๋ฅผ ๋งํ๋ค. ์ํ๋ฅผ ๋ณ๊ฒฝํ ์ ์๋ค๋ ํน์ฑ ๋๋ฌธ์ ๋ถ๋ณ ๊ฐ์ฒด์์๋ ๋ฐ์ดํฐ ๋ณต์ฌ์ ๋น๊ต๊ฐ ๋ง์ด ์ด๋ฃจ์ด์ง๋ค. ์๋ก์ด ์ํ๋ฅผ ํํํ๋ ค๊ณ (1)๊ธฐ์กด ์ํ๋ฅผ ๋ณต์ฌํ ๋ค, ์ด ์ค(2) ์ผ๋ถ๋ฅผ ์์ ํด์ ์๋ก์ด ๊ฐ์ฒด๋ฅผ ๋ง๋ค๊ณ , (3) ์ํ๋ฅผ ํ์ธํ๊ธฐ ์ํด ๊ฐ์ฒด ๋ด์ฉ์ ์์ฃผ ๋น๊ตํ๋ค. (๋ ์ฝ๋๋ ๋ถ๋ณ ๊ฐ์ฒด์์ ๋น๋ฒํ๊ฒ ์ด๋ค์ง๋ ์ด ๋ ๊ฐ์ง ์ฐ์ฐ์ ํธ๋ฆฌํ๊ฒ ์ํํ ์ ์๋๋ก C# 9.0์์ ๋์ ๋ ํ์์ด๋ค.) ์ฐธ์กฐ ํ์์ ํด๋์ค์ ๋ชจ๋ ํ๋๋ฅผ readonly๋ก ์ ์ธํ๋ฉด ๋ถ๋ณ ๊ฐ์ฒด๋ฅผ ๋ง๋ค ์ ์๋ค. ๊ฐ ํ์์ readonly struct๋ก ๊ตฌ์กฐ์ฒด๋ฅผ ์ ์ธ..
41. ํ๋กํผํฐ์ ์์ฑ์
๊ฐ์ฒด๋ฅผ ์์ฑํ๊ณ , ๊ฐ์ฒด์ ๊ฐ ํ๋๋ฅผ ์ด๊ธฐํํ๋ ... ๋ ๋ค๋ฅธ ๋ฐฉ๋ฒ ๋ฐ๋ก ํ๋กํผํฐ๋ฅผ ์ด์ฉํ ์ด๊ธฐํ - ์ด๊ธฐํํ๊ณ ์ถ์ ํ๋กํผํฐ๋ง ๋ฃ์ด์ ์ด๊ธฐํํ๋ฉด ๋๋ค. ์ด๊ฒ์ using System; namespace Property { class BirthdayInfo { public string Name{ get; set; } = "Unknown"; public DateTime Birthday { get; set; } = new DateTime(1,1,1); public int Age { get{ return new DateTime(DateTime.Now.Subtract(Birthday).Ticks).Year; } } } class MainApp { static void Main(string[] args) { Bi..
40. ์๋ ๊ตฌํ ํ๋กํผํฐ
ํ๋กํผํฐ ๊ธฐ๋ณธํ public class NameCard { private string name; private string phoneNumber; public string Name { get{ return name;} set{ name = value;} } public string PhoneNumber { get{ return phoneNumber; } set{ phoneNumber = value; } } } ์๋๊ตฌํ ํ๋กํผํฐ public class NameCard { public string Name { get; set; } public string PhoneNumber { get; set; } } ์ฌ๊ธฐ์ C# 7.0 ๋ถํฐ๋ ์๋์ ๊ฐ์ด ์๋ ๊ตฌํ ํ๋กํผํฐ๋ฅผ ์ ์ธํจ๊ณผ ๋์์ ์ด๊ธฐํ๋ฅผ ์ํํ ์ ์๋ค. ..

39. ํ๋กํผํฐ ๊ธฐ๋ณธํ ์ ์ธ
https://youtu.be/QXakJJHkz8k ์ฐธ ๊ณ ์ ์ ๊ฐ์ฒด์งํฅ ์ธ์ด๋ผ๋ฉด '์๋์ฑ'์ ํํํ ์ ์์ด์ผ ํ๋ค. ๊ฐ์ฒด์ ๋ฐ์ดํฐ๊ฐ ์๋ํ์ง ์๊ฒ ์ค์ผ๋๋ ๊ฒ์ ๋ง์์ผ ํ๊ธฐ ๋๋ฌธ์ด๋ค. C++์ด๋ Java์์๋ private๋ protected ์ ๊ทผ ํ์ ์๋ฅผ ์ด์ฉํด์ ํด๋์ค ๋ด์ ํ๋๋ฅผ ์ธ๋ถ์์ ๋ณด์ด์ง ์๊ฒ ๊ฐ์ถ๊ณ , ์ด ํ๋์ ์ ๊ทผํ๋ ๋ฉ์๋๋ค์ public์ผ๋ก ๋ฐ๋ก ์ ๊ณตํ๋ค. C# ํ๋ก๊ทธ๋๋จธ๋ ์ด ๋ฐฉ๋ฒ์ ๊ทธ๋๋ก ์ฌ์ฉํ ์ ์์ ๋ฟ๋๋ฌ, ๋ ์ฐ์ํ ์ฅ์น๋ฅผ ์ ๊ณตํ๋ค. ๋ฐ๋ก 'ํ๋กํผํฐ'์ด๋ค. ํ๋กํผํฐ๋ฅผ ์ด์ฉํ๋ฉด ์๋์ฑ๊ณผ ํธ์์ฑ, ๋ ๋ง๋ฆฌ ํ ๋ผ๋ฅผ ๋ค ์ก์ ์ ์๋ค. ์๋์ ๊ฐ์ ํ๋๊ฐ ์์ผ๋ฉด class MyClass { private int myField; } Java์์๋ get/set ๋ฉ์๋๋ฅผ ์ด๋ ๊ฒ ..