C#
30. νμ₯ λ©μλ
νμ₯ λ©μλλ κΈ°μ‘΄ ν΄λμ€μ κΈ°λ₯μ νμ₯νλ κΈ°λ²μ΄λ€. κΈ°λ° ν΄λμ€λ₯Ό λ¬Όλ €λ°μ νμ ν΄λμ€λ₯Ό λ§λ λ€ μ¬κΈ°μ νλλ λ©μλλ₯Ό μΆκ°νλ μμκ³Όλ λ€λ₯΄λ€. νμ₯λ©μλλ 'κΈ°μ‘΄ ν΄λμ€'μ κΈ°λ₯μ νμ₯νλ€. νμ₯ λ©μλλ₯Ό μ΄μ©νλ©΄ string ν΄λμ€μ λ¬Έμμ΄μ λ€μ§λ κΈ°λ₯μ λ£μ μλ μκ³ , int νμμ μ κ³± μ°μ° κΈ°λ₯μ λ£μ μλ μλ€. using System; using System.Collections; using System.Collections.Generic; using System.Globalization; using System.Linq; using System.Text; using System.Threading.Tasks; using static System.Console; using MyExt..
29. λΆν ν΄λμ€
λΆν ν΄λμ€λ μ¬λ¬ λ²μ λλ μ ꡬννλ ν΄λμ€λ₯Ό λ§νλ€. κ·Έ μμ²΄λ‘ νΉλ³ν κΈ°λ₯μ νλ κ²μ μλλ©°, ν΄λμ€μ ꡬνμ΄ κΈΈμ΄μ§ κ²½μ° μ¬λ¬ νμΌμ λλ μ ꡬνν μ μκ² ν¨μΌλ‘μ¨ μμ€ μ½λ κ΄λ¦¬μ νΈμλ₯Ό μ 곡νλλ° κ·Έ μλ―Έκ° μλ€. κ·Έλ₯ νλμ ν΄λμ€μΈ κ² μ²λΌ μ¬μ©νλ©΄ λλ€. (ν΄λμ€ μ΄λ¦μ λμΌν΄μΌ νλ€.) using System; using System.Collections; using System.Collections.Generic; using System.Globalization; using System.Linq; using System.Text; using System.Threading.Tasks; using static System.Console; namespace PartialClass { ..
28. μ€μ²© ν΄λμ€
μ€μ²© ν΄λμ€λ ν΄λμ€ μμ μ μΈλμ΄ μλ ν΄λμ€μ΄λ€. ν΄λμ€ μμ ν΄λμ€λ₯Ό μ μΈνλ κ²μ΄ μ λΆμ΄λ€. κ°μ²΄λ₯Ό μμ±νκ±°λ κ°μ²΄μ λ©μλλ₯Ό νΈμΆνλ λ°©λ²λ λ³΄ν΅ ν΄λμ€μ λκ°λ€. μ€μ²©ν΄λμ€λ μμ μ΄ μμλ ν΄λμ€μ λ©€λ²μ μμ λ‘κ² μ κ·Όν μ μλ€.(private λ©€λ²λ!) μ€μ²©ν΄λμ€λ₯Ό μ°λ μ΄μ - ν΄λμ€ μΈλΆμ 곡κ°νκ³ μΆμ§ μμ νμμ λ§λ€κ³ μ ν λ - νμ¬ ν΄λμ€μ μΌλΆλΆμ²λΌ ννν μ μλ ν΄λμ€λ₯Ό λ§λ€κ³ μ ν λ λ€λ₯Έ ν΄λμ€μ private λ©€λ²μλ λ§κ΅¬ μ κ·Όν μ μλ μ€μ²© ν΄λμ€λ μλμ±μ 무λλ¨λ¦¬κΈ°λ νμ§λ§, λ³΄λ€ μ μ°ν ννλ ₯μ νλ‘κ·Έλλ¨Έμκ² κ°μ Έλ€μ€λ€λ μ₯μ μ΄ μλ€. class OuterClass { private int OuterMember; class NestedClass { publi..
27. μ½κΈ° μ μ© νλ, readonly
λ³μλ λ³νλ λ°μ΄ν°λ₯Ό λ΄μ§λ§, μμλ λ³μΉ μλ λ°μ΄ν°λ₯Ό λ΄λλ€. μμλ const ν€μλλ₯Ό μ΄μ©ν΄μ μ μΈνλ€. μ»΄νμΌλ¬λ μμμ μ§μ λ κ°μ μ€ννμΌ μμ κΈ°λ‘ν΄λλ€. μμλ νλ‘κ·Έλ¨μ΄ μ€νλκΈ° μ λΆν° μ΄λ―Έ μ ν΄μ Έ μλ€. κ·Έλ¦¬κ³ νλ‘κ·Έλ¨ μ€ν μ€μλ μ λ κ·Έ κ°μ λ°κΏ μ μλ€. λ³μλ μμ λ‘κ² κ°μ λ³κ²½ν μ μλ€. μ½κΈ° μ μ© νλλ μμμ λ³μ κ·Έ μ€κ° μ΄λκ°μ μλ€. μ½κΈ° μ μ© νλλ, μ½κΈ°λ§ κ°λ₯ν νλλ₯Ό λ§νλ€. μ¦, ν΄λμ€λ ꡬ쑰체μ λ©€λ²λ‘λ§ μ‘΄μ¬ν μ μμΌλ©° μμ±μ μμμ ν λ² κ°μ μ§μ νλ©΄, κ·Έ νλ‘λ κ°μ λ³κ²½ν μ μλ κ²μ΄ νΉμ§μ΄λ€. μ»΄νμΌ μλ¬ : μ€λ₯ CS0191 μ½κΈ° μ μ© νλμλ ν λΉν μ μμ΅λλ€. λ¨, νλκ° μ μλ νμμ μμ±μ λλ μ΄κΈ°κ° μ μ© setterλ λ³μ ..
26. μ€λ²λΌμ΄λ© λ΄μΈνκΈ°
ν΄λμ€λ₯Ό μμμ΄ μ λλλ‘ λ΄μΈνλ κ²μ²λΌ λ©μλλ μ€λ²λΌμ΄λ©λμ§ μλλ‘ sealed ν€μλλ₯Ό μ΄μ©ν΄μ λ΄μΈν μ μλ€. κ·Έλ λ€κ³ λͺ¨λ λ©μλλ₯Ό λ΄μΈν μ μλ κ²μ μλκ³ , virtualλ‘ μ μΈλ κ°μ λ©μλλ₯Ό μ€λ²λΌμ΄λ©ν λ²μ μ λ©μλλ§ κ°λ₯νλ€. using System; using System.Collections; using System.Collections.Generic; using System.Globalization; using System.Linq; using System.Text; using System.Threading.Tasks; using static System.Console; namespace Overriding { class Base { public virtual void My..
25. μ€λ²λΌμ΄λ©κ³Ό λ€νμ± virtual, override
μμ½: λ€νμ±μ΄λ κ°μ²΄κ° μ¬λ¬ ννλ₯Ό κ°μ§ μ μμμ μλ―Ένλ€. λ€νμ±μ μλ νμ νμ λ€νμ±μ μ€λ§μ΄λ€. μμ μΌλ‘λΆν° μμλ°μ λ§λ€μ΄μ§ νμν΄λμ€λ₯Ό ν΅ν΄ λ€νμ±μ μ€ννλ€. μ€λ²λΌμ΄λ©μ νμν΄λμ€κ° κΈ°λ°ν΄λμ€μμ ꡬνλ ν¨μλ₯Ό μ¬μ μνλ κ²μ΄λ€. μ€λ²λΌμ΄λ©μ ν΅ν΄ λ€νμ±μ΄ μ€νλλ€. κ°μ²΄μ§ν₯ νλ‘κ·Έλλ°μμ λ€νμ±μ κ°μ²΄κ° μ¬λ¬ ννλ₯Ό κ°μ§ μ μμμ μλ―Ένλ€. λ€νμ±μ μλ νμ νμ λ€νμ±μ μ€λ§μ΄λ€. λ©μλλ₯Ό μ€λ²λΌμ΄λ©νκΈ° μν΄μλ ν κ°μ§ μ‘°κ±΄μ΄ νμνλ€. κ·Έ 쑰건μ λ°λ‘ μ€λ²λΌμ΄λ©μ ν λ©μλκ° virtual ν€μλλ‘ νμ λμ΄ μμ΄μΌ νλ€λ κ²μ΄λ€. μ€λ²λΌμ΄λ©μ νλ μΈ‘μμλ κΈ°λ° ν΄λμ€μ μ μΈλμ΄ μλ λ©μλλ₯Ό μ¬μ μνκ³ μμμ μ»΄νμΌλ¬μ μλ €μΌ νλ―λ‘ overrideλ‘ νμ ν΄μ£Όμ΄μΌ νλ€. ..
24. C# νμ λ³ν μ°μ°μ μν μ°μ°μ, isμ as
μ°μ°μ μ€λͺ is κ°μ²΄κ° ν΄λΉ νμμ ν΄λΉνλμ§ κ²μ¬νμ¬ κ·Έ κ²°κ³Όλ₯Ό bool κ°μΌλ‘ λ°ννλ€ (κ°μ²΄(νμ κ°λ¦¬ν€λ λ³μ)κ° μ°Ύκ³ μλ μμ±μ νμμ κ°λ¦¬ν€λκ² λ§λμ§λ₯Ό νμΈ!!! λ€λ₯Έ μμ±μ νμμ κ°λ¦¬ν¬ μλ μμΌλκΉ) as μΊμ€νΈ. λ§κ·Έλλ‘ νμ λ³ν! νμ λ³ν μ°μ°μμ κ°μ μν μ νλ€. (μ무리 μμ±μ νμμ κ°λ₯΄ν¬μ§ μΈμ μλ²½νκ² νλ³ννκΈ° μν΄μλ λ³μ μ체λ κ·Έ μ μΈμ κ°μ νμΌλ‘ μ§μ ν΄μ£Όμ΄μΌ νλ€.) λ€λ§ νμ λ³ν μ°μ°μκ° λ³νμ μ€ν¨νλ κ²½μ° μμΈλ₯Ό λμ§λ λ°λ©΄μ as μ°μ°μλ κ°μ²΄ μ°Έμ‘°λ₯Ό nullλ‘ λ§λ λ€λ κ²μ΄ λ€λ₯΄λ€. as μ¬μ© λ°©λ² Mammal mammal3 = new Cat(); if (mammal3 is Cat) { Cat cat2 = mammal3 as Cat; cat2...
![[μ€κ°μ κ²] μ κ·Όνμ μ internalμμ κ°μ μ΄μ
λΈλ¦¬λ](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FOxLPI%2Fbtrs4N6aPWe%2FAAAAAAAAAAAAAAAAAAAAAMPBOjK_we0xHle3UHqgc0xalc1a9GrRXmJ2C5HKoPj_%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1756652399%26allow_ip%3D%26allow_referer%3D%26signature%3DQShuBavHJRffeSZWNDUU7aic3tQ%253D)
[μ€κ°μ κ²] μ κ·Όνμ μ internalμμ κ°μ μ΄μ λΈλ¦¬λ
μ΄μ λΈλ¦¬ μ μ μ΄μ λΈλ¦¬ μ μ λ° μ΄μ λΈλ¦¬ λ νΌλ°μ€λ μ€ν¬λ¦½νΈλ₯Ό μ΄μ λΈλ¦¬λ‘ ꡬμ±ν μ μλ μμ μ λλ€. μ΄μ λΈλ¦¬λ μ€ν¬λ¦½νΈμ μν΄ μ μλκ³ λ€λ₯Έ μ΄μ λΈλ¦¬μ λν λ νΌλ°μ€λ μ μνλ μ»΄νμΌλ ν΄λμ€μ κ΅¬μ‘°μ²΄κ° λ€μ΄ μλ C# μ½λ λΌμ΄λΈλ¬λ¦¬μ λλ€. C#μ μ΄μ λΈλ¦¬μ λν μΌλ°μ μΈ μ 보λ [.NETμ μ΄μ λΈλ¦¬]λ₯Ό μ°Έμ‘°νμμμ€. κΈ°λ³Έμ μΌλ‘ Unityλ κ±°μ λͺ¨λ κ²μ μ€ν¬λ¦½νΈλ₯Ό μ¬μ μ μλ μ΄μ λΈλ¦¬μΈ Assembly-CSharp.dllλ‘ μ»΄νμΌν©λλ€. (λν Unityλ [λͺ κ°μ§ λ μκ³ μ λ¬Ένλ μ¬μ μ μ μ΄μ λΈλ¦¬]λ μμ±ν©λλ€.) μ΄ λ°°μ΄μ μκ·λͺ¨ νλ‘μ νΈμ μ ν©νμ§λ§, νλ‘μ νΈμ μ½λλ₯Ό λ μΆκ°ν κ²½μ° λͺ κ°μ§ λ¨μ μ΄ μμ΅λλ€. νλμ μ€ν¬λ¦½νΈλ₯Ό λ³κ²½ν λλ§λ€ Unityλ λ€λ₯Έ λͺ¨λ μ€ν¬λ¦½νΈλ₯Ό λ€μ μ»΄ν..
23. μμ, μ½λ μ¬νμ©, κΈ°λ° ν΄λμ€, νμ ν΄λμ€, base, sealed
ν΄λμ€λ λ€λ₯Έ ν΄λμ€λ‘λΆν° μ μ°μ λ¬Όλ €λ°μ μ μλ€.(νλ, λ©μλ, νλ‘νΌν° κ°μ λ©€λ²λ€) νμ ν΄λμ€λ κ°μ²΄λ₯Ό μμ±ν λ λ΄λΆμ μΌλ‘ κΈ°λ° ν΄λμ€μ μμ±μλ₯Ό λ¨Όμ νΈμΆν λ€μ μμ μ μμ±μλ₯Ό νΈμΆνκ³ , κ°μ²΄κ° μλ©Έλ λλ λ°λμ μμλ‘(νμν΄λμ€ -> κΈ°λ° ν΄λμ€)μ’ λ£μλ₯Ό νΈμΆνλ€. : κΈ°λ° ν΄λμ€ λ¨Όμ μμ±λκ³ λ§μ§λ§κΉμ§ λ²ν°λ€ κ°μ₯ λμ€μ μ’ λ£μ νΈμΆν¨! λ§μ½ κΈ°λ° ν΄λμ€μ μμ±μκ° λ§€κ°λ³μλ₯Ό μ λ ₯λ°λλ‘ μ μΈλμ΄ μλ€λ©΄ νμ ν΄λμ€μ μΈμ€ν΄μ€λ₯Ό μμ±ν λ νΈμΆλλ κΈ°λ° ν΄λμ€μ μμ±μμλ μ΄λ»κ² λ§€κ°λ³μλ₯Ό μ λ¬ν μ μμκΉ. μ΄λ΄ λ base ν€μλλ₯Ό μ¬μ©νλ©΄ λλ€. this ν€μλκ° "μκΈ° μμ "μ κ°λ¦¬ν¨λ€λ©΄ baseλ "κΈ°λ° ν΄λμ€"λ₯Ό κ°λ¦¬ν¨λ€. thisλ₯Ό ν΅ν΄ μκΈ° μμ μ λ©€λ²μ μ κ·Όν μ μ..
22. μλμ±, μ κ·Ό νμ μ
κ°μ²΄ μ§ν₯ νλ‘κ·Έλλ° 3λ νΉμ± : μλμ±, μμμ±, λ€νμ± κ°μ²΄μ§ν₯ νλ‘κ·Έλλ°μλ ν΄λμ€μ μ¬μ©μμκ² νμν μ΅μμ κΈ°λ₯λ§ λ ΈμΆνκ³ λ΄λΆλ₯Ό κ°μΆ κ²μ μꡬνλ€. μ΄κ²μ μλμ±μ΄λΌκ³ νλ€. ν΄λμ€μ μ μΈλμ΄ μλ νλμ λ©μλ μ€ μ΄λ€ κ²λ€μ μ¬μ©μμκ² λ ΈμΆν κ²μ΄ μλκ° νλ©΄ μ λλ‘ λ ΈμΆμν€μ§ λ§μμΌ νλ κ²λ€λ μλ€. μ κ·Ό νμ μλ κ°μΆκ³ μΆμ κ²μ κ°μΆκ³ , 보μ¬μ£Όκ³ μΆμ κ²μ 보μ¬μ€ μ μλλ‘ μ½λλ₯Ό μμνλ©° νλ, λ©μλλ₯Ό λΉλ‘―ν΄ νλ‘νΌν° λ± λͺ¨λ μμμ λν΄ μ¬μ©ν μ μλ€. C#μμ μ 곡νλ μ κ·Ό νμ μλ λͺ¨λ μ¬μ―κ°μ§λ‘, λ€μκ³Ό κ°λ€. μ κ·Ό νμ μ μ€λͺ public ν΄λμ€ λ΄λΆ/μΈλΆ λͺ¨λ κ³³μμ μ κ·Όν μ μλ€. protected ν΄λμ€μ μΈλΆμμλ μ κ·Όν μ μμ§λ§, νμ ν΄λμ€μμλ μ κ·Ό..