[C#] C# μΈμ΄μ μ£ΌμνΉμ§
π‘ ν΄λμ€ (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) : <>μμ μμ±
π μ€νκ²°κ³Ό