[C#] μ œλ„ˆλ¦­

[원본 링크]

μ œλ„ˆλ¦­μ— λŒ€ν•œ 이둠적인 μ„€λͺ…은 ꡬ차히 ν•˜μ§€ μ•Šκ² λ‹€.
이 글을 λ³΄λŠ” μ—¬λŸ¬λΆ„μ΄ 이미 μžλ°”λ‚˜ C++에 ν†΅λ‹¬ν•΄μ„œ μΌλ°˜ν™”μ— λŒ€ν•œ κ°œλ…μ„ μ™„λ²½νžˆ μ΄ν•΄ν•˜κ³  μžˆλ‹€κ³ , ꡳ건히 믿고있기 λ•Œλ¬Έμ΄λ‹€.

μ œλ„ˆλ¦­μ„ μ μš©ν•œ Swap ν•¨μˆ˜λŠ” μ΄λ ‡κ²Œ λœλ‹€.
static void Swap (ref T a, ref T b) { ... }

μ œλ„ˆλ¦­μ„ μ μš©ν•œ ν΄λž˜μŠ€λŠ” μ΄λ ‡κ²Œ λœλ‹€.
class My
{
T value;
...
}

μ œλ„ˆλ¦­μ„ μ μš©ν•œ λ”œλ¦¬κ²Œμ΄νŠΈλŠ” μ΄λ ‡κ²Œ λœλ‹€. 이건 System.μ—μ„œ κΈ°λ³Έμ œκ³΅λ˜λŠ” λŒ€λ¦¬μžλ‹€.
delegate int Comparision(T a, T b);


μ—¬κΈ°κΉŒμ§€λŠ” μžλ°”μ™€ λ™μΌν•˜λ‹€.

이제 νƒ€μž…νŒŒλΌλ―Έν„°μ— μ œμ•½μ„ κ±Έμ–΄λ³΄μž.


where
where은 μ‹œκ·Έλ„ˆμ²˜, κ·ΈλŸ¬λ‹ˆκΉŒ λŒ€κ°œ μ€‘κ΄„ν˜Έκ°€ μ‹œμž‘λ˜κΈ° λ°”λ‘œ μ „ 뢀뢄에 λΆ™μ—¬μ„œ νƒ€μž…νŒŒλΌλ―Έν„°μ— 쑰건을 λΆ€μ—¬ν•œλ‹€.
이런 νƒ€μž…μ΄ μ•„λ‹ˆλ©΄ λͺ» λ„£λŠ”λ‹€λŠ” κ±°λ‹€.


κ·Έ 쑰건에 μœ„λ°°λ˜λ©΄ 빨간쀄을 κΈ‹λŠ”λ‹€.

μ–΄μ¨Œλ“  이 μ œμ•½μ‘°κ±΄μ—λŠ” 5κ°€μ§€κ°€ μžˆλ‹€.

νƒ€μž…νŒŒλΌλ―Έν„°λͺ…Β : classΒ //μ°Έμ‘°νƒ€μž…λ§Œ κ°€λŠ₯!
: struct //κ°’νƒ€μž…λ§Œ κ°€λŠ₯!
: new() //λ§€κ°œλ³€μˆ˜ μ—†λŠ” μƒμ„±μžλ₯Ό κ°–κ³ μžˆλŠ” νƒ€μž…μ΄λΌμ•Ό κ°€λŠ₯!
: νƒ€μž…λͺ… //이 νƒ€μž…μ΄κ±°λ‚˜ 이 νƒ€μž…μ„ 상속받은 νƒ€μž…λ§Œ!
: λ‹€λ₯Ένƒ€μž…νŒŒλΌλ―Έν„°λͺ… //이 νƒ€μž…νŒŒλΌλ―Έν„°μ™€ λ™μΌν•˜κ±°λ‚˜ μƒμ†λ°›μ•˜μ„ λ•Œλ§Œ!
**
**

이게 λ‹€λ‹€