ํ์ฅ ๋ฉ์๋
:๊ธฐ์กด ํด๋์ค
์ ๊ธฐ๋ฅ์ ํ์ฅํ๋ ๊ธฐ๋ฒ, ์์๊ณผ ๊ตฌ๋ณํ์ฌ ์๊ฐํ๋ฉด ์ดํดํ๊ธฐ๊ฐ ์ฝ๋ค.์์
๊ณผ ๋ค๋ฅด๊ฒ"๊ธฐ์กดํด๋์ค"
์ ํ์ฅ์ ํด์ค์ผ๋ก์จ ๋ณธ๋ ์๋ ๊ธฐ๋ฅ์ฒ๋ผ ์ฌ์ฉํ ์ ์๋ค.
์ฃผ์)Java์ ํผ๋ํ์ง ๋ง๊ฒ!!!
Java
๋extends
๋ผ๋ ํค์๋๋ฅผ ์ด์ฉํด ์์์ ๋ฐ๋๋ฐJava
์์๋ ์์์ ํ์ฅ์ ๊ฐ๋ ์ด ํฌํจ๋๋ค.- ํ์ง๋ง
C#
์์๋์์๊ณผ ํ์ฅ ๊ฐ๋ ์ ๋ถ๋ฆฌ
์ํจ๋ค.
- ํ์ง๋ง
####ํ์ฅ ๋ฉ์๋ ์ ์ธ ํ์ - static ํค์๋๊ฐ ๋ถ์ด์ผํ๋ค.
public static class ํด๋์ค๋ช
{
public static ๋ฐํํ์ ๋ฉ์๋๋ช
( this ๋์ํ์(ํด๋์ค, ํ์
) ์๋ณ์, ๋งค๊ฐ๋ณ์)
{
}
}
ํ์ฅ๋ฉ์๋ ์ฌ์ฉ ์์ ์ฝ๋1
using System.Collections;
namespace ExtansionEx
{
public static class MyExtensions
{
public static void ShowMyIntList(this int n, int n2)
// int ๋ผ๋ ํ์
์ ์๋ก์ด ๋ฉ์๋ ๊ธฐ๋ฅ์ ํ์ฅํ๊ฒ ๋ค๋ผ๋ ์๋ฏธ.
// n => ์ธ์คํด์ค ์์ฒด๋ฅผ ๊ฐ๋ฆฌํด, n2 => ๋งค๊ฐ๋ณ์
{
Console.WriteLine($"int ๊ฐ์ {n} {n2}");
}
}
class Program
{
static void Main(string[] args)
{
int n = 100;
n.ShowMyIntList(200);
10000.ShowMyIntList(1235);
}
}
}
Output
int ๊ฐ์ 100 200
int ๊ฐ์ 10000 1235
ํ์ฅ๋ฉ์๋ ์ฌ์ฉ ์์ ์ฝ๋2
using System.Collections;
namespace ExtansionEx
{
public static class MyExtensions
{
public static void showMyIntList (this List<int> n)
{
foreach (int i in n)
{
Console.WriteLine ($"๊ฐ : {i} ");
}
}
}
class Program
{
static void Main(string[] args)
{
List<int> li = new List<int>()
{
11,22,33,44,55,66,77
};
li.showMyIntList();
}
}
}
Output
๊ฐ : 11
๊ฐ : 22
๊ฐ : 33
๊ฐ : 44
๊ฐ : 55
๊ฐ : 66
๊ฐ : 77
์๋ก ์ ์ธํ ํด๋์ค์ ํ์ฅ๋ฉ์๋ ์ถ๊ฐ ์์ ์ฝ๋
using System.Collections;
namespace ExtansionEx
{
public class MyClass
{
public int speed;
public void AddSpeed(int s)
{
this.speed += s;
}
public void DisplaySpeed()
{
Console.WriteLine($"ํ์ฌ ์๋๋ {this.speed}");
}
}
public static class MyClassExt
{
public static void SubSpeed(this MyClass mc, int s)
{
mc.speed -= s;
}
}
class Program
{
static void Main(string[] args)
{
MyClass mc = new MyClass();
mc.AddSpeed(100);
mc.DisplaySpeed();
mc.SubSpeed(50);
mc.DisplaySpeed();
}
}
}
Output
ํ์ฌ ์๋๋ 100
ํ์ฌ ์๋๋ 50
'๐ป Programming Language > C#' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
16. ์ถ์ํด๋์ค(Abstract Class) ์ดํด (0) | 2022.04.06 |
---|---|
15. ์ธํฐํ์ด์ค(Interface) ์ดํด (0) | 2022.04.06 |
13. ํํ ๋ฆฌํด ํ์ ์ ์ด์ฉํ ๋ฉ์๋ ์ฌ์ฉํ๊ธฐ (0) | 2022.04.06 |
12. ๊ตฌ์กฐ์ฒด & ํํ (0) | 2022.04.06 |
11. ์ค๋ฒ๋ผ์ด๋ฉ(virtual, override, new) (0) | 2022.04.06 |