C#

[C#] C# μ–Έμ–΄μ˜ μ£Όμš”νŠΉμ§•

쑰밈밍 2022. 9. 1. 19:30

πŸ’‘  클래슀 (Class) : ν•„λ“œ,λ©”μ†Œλ“œ ꡬ성

: ν”„λ‘œκ·Έλž˜λ° 언어적인 μΈ‘λ©΄μ—μ„œ 객체 μžλ£Œν˜• λ˜λŠ” 객체 클래슀

ν•„λ“œ  μƒμˆ˜ μ •μ˜, ν•„λ“œ, 이벀트 etc
λ©”μ†Œλ“œ λ©”μ†Œλ“œ, μƒμ„±μž, μ†Œλ©Έμž, ν”„λ‘œνΌν‹°, μΈλ±μ„œ, μ—°μ‚°μž 쀑볡 etc

 

🐠 μ‹€ν–‰κ²°κ³Ό

 


 

πŸ’‘  ν”„λ‘œνΌν‹° (Property) : set,get ꡬ성

: 클래슀의 private ν•„λ“œλ₯Ό ν˜•μ‹μ μœΌλ‘œ λ‹€λ£¨λŠ” μΌμ’…μ˜ λ©”μ†Œλ“œ

: 클래슀의 private ν•„λ“œλŠ” 정보은닉을 μœ„ν•΄ λ‹€λ₯Έ ν΄λž˜μŠ€μ—μ„œλŠ” μž„μ˜λ‘œ 접근이 ν—ˆμš©λ˜μ§€ μ•Šμ§€λ§Œ,

 λŒ€μ‘λ˜λŠ” ν”„λ‘œνΌν‹°λ₯Ό 톡해 λ‹€λ₯Έ ν΄λž˜μŠ€μ—μ„œ ν˜•μ‹μ μœΌλ‘œ μ ‘κ·Όν•  수 μžˆλ‹€

: set-accessor (κ°’ 지정), get-accessor(κ°’ μ°Έμ‘°)둜 ꡬ성

 

🐠 μ‹€ν–‰κ²°κ³Ό

 


 

πŸ’‘  μ—°μ‚°μž 쀑볡 (Operator Overloading)

: μ‹œμŠ€ν…œμ—μ„œ μ œκ³΅ν•œ μ—°μ‚°μžλ₯Ό μž¬μ •μ˜ ν•˜λŠ” 것

: ν΄λž˜μŠ€λ§Œμ„ μœ„ν•œ μ—°μ‚°μžλ‘œμ¨ μžλ£ŒμΆ”μƒν™”κ°€ κ°€λŠ₯ (μ‹œμŠ€ν…œμ—μ„œ μ œκ³΅ν•˜λŠ” μ—°μ‚°μžμ²˜λŸΌ μ‚¬μš© κ°€λŠ₯)

: 문법적인 κ·œμΉ™μ€ λ³€κ²½ λΆˆκ°€ (μ—°μ‚° μˆœμœ„λ‚˜ κ²°ν•© 법칙 etc)

 

🐠 μ‹€ν–‰κ²°κ³Ό

 


 

πŸ’‘  델리게이트 (Delegate)

: 객체지ν–₯적 νŠΉμ§•μ΄ 반영된 λ©”μ†Œλ“œ 포인터

: μ΄λ²€νŠΈμ™€ μŠ€λ ˆλ“œ μ²˜λ¦¬ν•˜κΈ° μœ„ν•¨

 

πŸ“Œ ν”„λ‘œκ·Έλž˜λ° μˆœμ„œ

1. Delegate μ •μ˜ 

2. λ©”μ†Œλ“œ μ •μ˜ 

3. Delegate 객체 생성

4. Delegate 객체에 λ©”μ†Œλ“œ μ—°κ²°

5. Delegateλ₯Ό 톡해 λ©”μ†Œλ“œ 호좜

 

 


 

πŸ’‘ 이벀트 (Event)

: C#μ—μ„œλŠ” Delegateλ₯Ό μ΄μš©ν•˜μ—¬ 이벀트 처리

: μ΄λ²€νŠΈμ™€ 이벀트 처리기λ₯Ό ν†΅ν•˜μ—¬ 객체에 λ°œμƒν•œ 사건을 λ‹€λ₯Έ 객체에 ν†΅μ§€ν•˜κ³ ,

  그에 λŒ€ν•œ ν–‰μœ„λ₯Ό μ²˜λ¦¬ν•˜λ„λ‘ μ‹œν‚€λŠ” ꡬ쑰

-> 각 μ΄λ²€νŠΈμ— λ”°λ₯Έ μž‘μ—…μ„ λ…λ¦½μ μœΌλ‘œ 기술

-> ν”„λ‘œκ·Έλž¨μ˜ ꡬ쑰가 체계적/ ꡬ쑰적이며, λ³΅μž‘λ„λ₯Ό 쀄일 수 있음

: μ΄λ²€νŠΈκ°€ λ°œμƒλ˜λ©΄ λ“±λ‘λœ λ©”μ†Œλ“œκ°€ ν˜ΈμΆœλ˜μ–΄ 이벀트 처리

-> 미리 μ •μ˜λœ 이벀트 λ°œμƒμ€ μ‚¬μš©μžμ˜ 행동에 μ˜ν•΄μ„œ λ°œμƒ

-> μ‚¬μš©μž μ •μ˜ 이벀트인 κ²½μš°μ—λŠ” λͺ…μ‹œμ μœΌλ‘œ Delegate 객체λ₯Ό ν˜ΈμΆœν•¨μœΌλ‘œμ¨ 이벀트 처리기λ₯Ό μž‘λ™

 

πŸ“Œ ν”„λ‘œκ·Έλž˜λ° μˆœμ„œ

1. 이벀트 처리기의 ν˜•νƒœμ™€ μΌμΉ˜ν•˜λŠ” Delegateλ₯Ό μ •μ˜ (λ˜λŠ” System.EventHandler Delegateλ₯Ό μ‚¬μš©)

2. Delegateλ₯Ό μ΄μš©ν•˜μ—¬ 이벀트 μ„ μ–Έ (미리 μ •μ˜λœ 이벀트인 κ²½μš°μ—λŠ” μƒλž΅)

3. 이벀트 처리기 μž‘μ„±

4. μ΄λ²€νŠΈμ— 이벀트 처리기 등둝

5. 이벀트 λ°œμƒ 

 

🐠 μ‹€ν–‰κ²°κ³Ό

 


 

πŸ’‘ μŠ€λ ˆλ“œ (Thread)

: μˆœμ°¨ν”„λ‘œκ·Έλž¨κ³Ό μœ μ‚¬ν•˜κ²Œ μ‹œμž‘, μ‹€ν–‰, μ’…λ£Œμ˜ μˆœμ„œλ₯Ό 가짐

: μ‹€ν–‰λ˜λŠ” λ™μ•ˆμ— ν•œ μ‹œμ μ—μ„œ 단일 μ‹€ν–‰ 점을 가짐

: ν”„λ‘œκ·Έλž¨ λ‚΄μ—μ„œλ§Œ μ‹€ν–‰ κ°€λŠ₯

: λ©€ν‹° μŠ€λ ˆλ“œ μ‹œμŠ€ν…œ : μŠ€λ ˆλ“œκ°€ ν•˜λ‚˜μ˜ ν”„λ‘œκ·Έλž¨λ‚΄μ— μ—¬λŸ¬κ°œ 쑴재

 

πŸ“Œ ν”„λ‘œκ·Έλž˜λ° μˆœμ„œ

1. μŠ€λ ˆλ“œ λͺΈμ²΄μ— ν•΄λ‹Ήν•˜λŠ” λ©”μ†Œλ“œ μž‘μ„±

2. μž‘μ„±λœ λ©”μ†Œλ“œλ₯Ό ThreadStart Delegate에 μ—°κ²°

3. μƒμ„±λœ Delegateλ₯Ό μ΄μš©ν•˜μ—¬ μŠ€λ ˆλ“œ 객체λ₯Ό 생성

4. μŠ€λ ˆλ“œμ˜ 싀행을 μ‹œμž‘(Start() λ©”μ†Œλ“œ 호좜)

 

🐠 μ‹€ν–‰κ²°κ³Ό

 


 

πŸ’‘ μ œλ„€λ¦­ (Generics)

: μžλ£Œν˜•μ„ λ§€κ°œλ³€μˆ˜λ‘œ κ°€μ§ˆμˆ˜ μžˆλŠ” κ°œλ…

: C++의 ν…œν”Œλ¦Ώκ³Ό μœ μ‚¬

: ν”„λ‘œκ·Έλž¨ λ‚΄μ—μ„œλ§Œ μ‹€ν–‰ κ°€λŠ₯

: (μ œλ„€λ¦­ λ‹¨μœ„) 클래슀, ꡬ쑰체, μΈν„°νŽ˜μ΄μŠ€, λ©”μ†Œλ“œ

 

πŸ“Œ Generic 클래슀

: λ²”μš© 클래슀 λ˜λŠ” 포괄 클래슀라 ν•  수 있음

: ν˜• λ§€κ°œλ³€μˆ˜ (type parameter) : <>μ•ˆμ— μž‘μ„±

 

🐠 μ‹€ν–‰κ²°κ³Ό