16. ์ถ”์ƒํด๋ž˜์Šค(Abstract Class) ์ดํ•ด
ยท
๐Ÿ’ป Programming Language/C#
namespace AbstractClassEx { abstract class MyAbstractClass { protected void protectedMethod() { Console.WriteLine("์ถ”์ƒํด๋ž˜์Šค์˜ protected method"); } public void publicMethod() { Console.WriteLine("์ถ”์ƒํด๋ž˜์Šค์˜ public method"); } public abstract void abstractMethod(); // ์ธํ„ฐํŽ˜์ด์Šค์—์„œ๋Š” ์ถ”์ƒ๋ฉ”์†Œ๋“œ๊ฐ€ ๊ธฐ๋ณธ์ ์œผ๋กœ public์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ˜ํ™˜ํƒ€์ž…๋งŒ ์‚ฌ์šฉํ–ˆ์ง€๋งŒ // ์ถ”์ƒํด๋ž˜์Šค์—์„œ๋Š” ์ถ”์ƒ๋ฉ”์†Œ๋“œ์— ์ œํ•œ์ž ๋ฐ abstract ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด์ค˜์•ผ ํ•œ๋‹ค. } class Child : MyAbstractClass { public o..
15. ์ธํ„ฐํŽ˜์ด์Šค(Interface) ์ดํ•ด
ยท
๐Ÿ’ป Programming Language/C#
namespace InterfaceEx { interface IMyInterfaceA { void output(); } interface IMyInterfaceB { void output(); } class MyClass : IMyInterfaceA, IMyInterfaceB // ๋‹ค์ค‘ ์ƒ์† { static void Main(string[] args) { MyClass myClass = new MyClass(); IMyInterfaceA ia = new MyClass(); ia.output(); IMyInterfaceB ib = new MyClass(); ib.output(); } void IMyInterfaceA.output() // ๋‹ค์ค‘์ƒ์†์„ ํ†ตํ•ด ๊ฐ€์ ธ์˜จ ํด๋ž˜์Šค๋“ค์˜ ๋ฉ”์†Œ๋“œ๋ช…์ด ๊ฐ™์€๊ฒฝ์šฐ์—๋Š” `ํด๋ž˜์Šค.๋ฉ”..
14. ํ™•์žฅ ๋ฉ”์†Œ๋“œ
ยท
๐Ÿ’ป Programming Language/C#
ํ™•์žฅ ๋ฉ”์†Œ๋“œ : ๊ธฐ์กด ํด๋ž˜์Šค์˜ ๊ธฐ๋Šฅ์„ ํ™•์žฅํ•˜๋Š” ๊ธฐ๋ฒ•, ์ƒ์†๊ณผ ๊ตฌ๋ณ„ํ•˜์—ฌ ์ƒ๊ฐํ•˜๋ฉด ์ดํ•ดํ•˜๊ธฐ๊ฐ€ ์‰ฝ๋‹ค. ์ƒ์†๊ณผ ๋‹ค๋ฅด๊ฒŒ "๊ธฐ์กดํด๋ž˜์Šค" ์— ํ™•์žฅ์„ ํ•ด์คŒ์œผ๋กœ์จ ๋ณธ๋ž˜ ์žˆ๋˜ ๊ธฐ๋Šฅ์ฒ˜๋Ÿผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ์ฃผ์˜)Java์™€ ํ˜ผ๋™ํ•˜์ง€ ๋ง๊ฒƒ!!! Java๋Š” extends๋ผ๋Š” ํ‚ค์›Œ๋“œ๋ฅผ ์ด์šฉํ•ด ์ƒ์†์„ ๋ฐ›๋Š”๋ฐ Java์—์„œ๋Š” ์ƒ์†์— ํ™•์žฅ์˜ ๊ฐœ๋…์ด ํฌํ•จ๋œ๋‹ค. ํ•˜์ง€๋งŒ C#์—์„œ๋Š” ์ƒ์†๊ณผ ํ™•์žฅ ๊ฐœ๋…์„ ๋ถ„๋ฆฌ์‹œํ‚จ๋‹ค. ####ํ™•์žฅ ๋ฉ”์†Œ๋“œ ์„ ์–ธ ํ˜•์‹ - static ํ‚ค์›Œ๋“œ๊ฐ€ ๋ถ™์–ด์•ผํ•œ๋‹ค. public static class ํด๋ž˜์Šค๋ช… { public static ๋ฐ˜ํ™˜ํ˜•์‹ ๋ฉ”์†Œ๋“œ๋ช…( this ๋Œ€์ƒํ˜•์‹(ํด๋ž˜์Šค, ํƒ€์ž…) ์‹๋ณ„์ž, ๋งค๊ฐœ๋ณ€์ˆ˜) { } } ํ™•์žฅ๋ฉ”์†Œ๋“œ ์‚ฌ์šฉ ์˜ˆ์ œ ์ฝ”๋“œ1 using System.Collections; namespace ExtansionE..
13. ํŠœํ”Œ ๋ฆฌํ„ด ํƒ€์ž…์„ ์ด์šฉํ•œ ๋ฉ”์†Œ๋“œ ์‚ฌ์šฉํ•˜๊ธฐ
ยท
๐Ÿ’ป Programming Language/C#
using System; namespace TupleEx2 { class Program { static void Main(string[] args) { // ํŠœํ”Œ ๋ฆฌํ„ดํƒ€์ž…์„ ์ด์šฉํ•œ ๋ฉ”์†Œ๋“œ ์„ ์–ธ (int count, int sum, double avg) getScore (List data) //ํŠœํ”Œ ๋ฆฌํ„ดํƒ€์ž…์„ ๋ช…์‹œ. { int count = 0, sum =0; double avg = 0; foreach (var item in data) { count++; sum += item; } avg = sum / count; return (count, sum, avg); } var data = new List {10, 11, 22, 33, 44}; var result = getScore (data); Console...
12. ๊ตฌ์กฐ์ฒด & ํŠœํ”Œ
ยท
๐Ÿ’ป Programming Language/C#
๊ตฌ์กฐ์ฒด(Struct) => ํ‚ค์›Œ๋“œ : struct ์‚ฌ์šฉ using System; namespace StructEx { //๊ตฌ์กฐ์ฒด ์ •์˜ํ•˜๊ธฐ struct MyPoint { public int x; public int y; //**๊ตฌ์กฐ์ฒด๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ์—†๋Š” ๊ธฐ๋ณธ์ƒ์„ฑ์ž๋Š” ์„ ์–ธํ•  ์ˆ˜ ์—†๋‹ค. public MyPoint(int x, int y) { this.x = x; this.y = y; } // ๋ชจ๋“  ๊ตฌ์กฐ์ฒด๋Š” System.Object ํ˜•์‹์„ ์ƒ์†ํ•˜๋Š” System.ValueType์œผ๋กœ ๋ถ€ํ„ฐ ์ง์ ‘ ์ƒ์†๋ฐ›์Œ. public override string ToString() { return string.Format($"{x} {y}"); } } class Program { static void Main(string[] arg..
11. ์˜ค๋ฒ„๋ผ์ด๋”ฉ(virtual, override, new)
ยท
๐Ÿ’ป Programming Language/C#
namespace Override { class BaseClass { public virtual void echo() { Console.WriteLine("๊ธฐ๋ฐ˜ ํด๋ž˜์Šค"); } public virtual void echo2() { Console.WriteLine("๊ธฐ๋ฐ˜ echo2"); } } class DerivedClass : BaseClass { override public void echo() //๋ถ€๋ชจํด๋ž˜์Šค ๋‚ด์— virtual๋กœ ์„ ์–ธ๋˜์–ด ์žˆ๋Š” ๋ฉ”์†Œ๋“œ๋ฅผ ํŒŒ์ƒํด๋ž˜์Šค์—์„œ ์žฌ์ •์˜ํ• ๋•Œ // override ํ‚ค์›Œ๋“œ๋ฅผ ์•ž์— ๋ถ™์ด๊ณ  ๋ฉ”์†Œ๋“œ๋ฅผ ์žฌ์ •์˜ํ•ด์ค€๋‹ค. // => ์ด๋ ‡๊ฒŒ ์‚ฌ์šฉํ•˜๋Š”๊ฒŒ ์ •ํ™•ํ•œ ๋ฐฉ๋ฒ•์ด๊ณ  ์—๋Ÿฌ๋‚˜ ๊ฒฝ๊ณ ๊ฐ€ ์•ˆ๋œธ { Console.WriteLine("ํŒŒ์ƒ ํด๋ž˜์Šค"); } public new void echo..
10. is ์—ฐ์‚ฐ์ž์™€ as ์—ฐ์‚ฐ์ž
ยท
๐Ÿ’ป Programming Language/C#
namespace AsisEx { class Human { public void showInfo() { Console.WriteLine("Human"); } } class Programmer : Human { public void programming() { Console.WriteLine("๊ฐœ๋ฐœ์ž"); } } class Designer : Human { public void design() { Console.WriteLine("๋””์ž์ด๋„ˆ"); } } class Program { static void Main(string[] args) { Human human = new Programmer(); //ํŒŒ์ƒํด๋ž˜์Šค ์ธ์Šคํ„ด์Šค๋ฅผ ๊ธฐ๋ฐ˜ํด๋ž˜์Šค ์ธ์Šคํ„ด์Šค๋กœ ์„ ์–ธ Programmer programmer; if (human ..