class AΒ
{
Β private int i = 0;Β Β // μ΄λ κ² μ μΈν΄ λκ³
}
μ€μ λ‘ μ¬μ©ν λλ,
i = 1;Β μ΄λ°μμΌλ‘ μ¬μ©λͺ»νκ² λ§κ³
SetValue ( 0 ) ;
μ²λΌ ν¨μλ§ μ¬μ©ν΄μ μ¬μ©νκ² ν μ μμ?
μνλ³μλ₯Ό νλ λ§λ€μλλ°, μ΄κ±Έ μ§μ 건λλ €μ λκ° μ¬λ¬κ°μ§ μ€μ κ°λ€μ΄, κΌ¬μ΄λ μν©μ λ§μΌλ €κ΅¬μ.
κ·Έλμ ν¨μλ‘λ§ κ°μ΄ μ€μ λκ² νκ³ μΆμ.
무μ¨λ§μΈμ§λ μ λͺ¨λ₯΄κ² μ§λ§ μ μλ³μμ λ³μμ ν¨μλ΄μμμ λ³μλ κ°μμ΄λ¦μ΄ μ€λ³΅λλ©΄ μ°μ μμλ ν¨μλ΄μμμ λ³μκ° μ°μ μ μΌλ‘ μ¬μ©λλ κ±Έλ‘ μκ³ μλλ° ν¨μμλ§ μ¬μ©ν λ³μλΌλ©΄ ex) public void a(int i = 0) μ΄λ°μμΌλ‘ κΈ°λ³Έκ°μ 미리 μ ν΄λλ€κ° νμν λλ§ κ°μ λ³κ²½ν΄μ£Όλ©΄ μ’μλ―ν¨. μμ§ν λ³Έλ¬Έλ΄μ©μ λνκ³ μΆμκ±΄μ§ μ΄ν΄κ° μλ¨ γ γ γ γ
classA μμμ i κ°μ μ§μ λͺ»κ±΄λλ¦¬κ² νκ³ μΆλ€λ 건λ°..... i κ°μ 건λλ¦¬κ³ μΆλ€λ©΄, λ©μλλ₯Ό μ¬μ©ν΄μλ§ λ°κΎΈκ² νλ €κ΅¬μ.
privateλ₯Ό μ¨λ μΈλΆν΄λμ€κ° μλμ΄μ, iκ° μ μΈλ ν΄λμ€ λ΄λΆλΌλ©΄ μΈμ λ μ§ μ κ·Όκ°λ₯ν΄μ, μ μΈλ ν΄λμ€ λ΄λΆμμ μ κ·Όνλ€λ©΄ κ°μ΄ λ³κ²½λ κ»μ. constλ₯Ό μ°λ©΄ λ³κ²½λͺ»νκ² λ§μμλ μκΈ°λ νμ§λ§ κ³ μ κ°μ΄λΌ μ΄λ κ²λλ©΄ κ°μ λ³κ²½λͺ»νκ²λκ³ ....
γ γ κ·Έλμ λ°©λ²μ΄ μλμ§ λ¬Όμ΄λ³΄λκ±°μ. γ γ μν λ³μλ₯Ό λ§λ€μλλ°, λ무 μ¬κΈ° μ κΈ°μ λ§κ΅¬μ‘μ΄λ‘ κ°μ μ ν ν΄μ..... λ무 λμ‘ν΄μ λ²λ €μ μμ μ’ ν΄λ³΄λ €κ΅¬μ.
κ°μ ν΄λμ€ λ΄λΆμμ μ κ·Όνλ κ±°λΌλ©΄, μμ§ν μ κ·Ό μλκ²νλ λ°©λ²μ μμ. μλμ μΌλ‘ κ·Έλ₯ iλ₯Ό μ¬μ©νμ§ μκ±°λ, public int I{get; set;}μΌλ‘ νΉμ 쑰건μμλ§ iκ°μ΄ λ³κ²½λκ²λ 쑰건 κ±Έμ΄μ£Όκ±°λ...
μλμͺ½μ κ³ μλΆμ΄ λ΅λ³μ λ¬μ μ£Όμ ¨λ€μ. γ γ . μμ μ¬λμ 머리λ₯Ό μ°λ €κ³ ν΄μΌλλλ΄μ. 무μμμ νλ¦μμ μ½λ©κ³Ό, 머리λ₯Ό μ°λ μ½λ©μ΄ λ€λ₯΄λ€μ. γ γ
νλ‘νΌν°
ν .... νΌλ‘νΌν°λ₯Ό μ¬μ©νλλΌλ, ν΄λμ€ λ΄μμλ, [ i ] λ³μμ μ κ·Όμ κ³μ ν μ μμμμ. γ γ μ€μλ‘λΌλ [ i ] λ³μμ μ§μ μ κ·Όμ λͺ»νκ² νλ €κ΅¬μ.
λλ체 λ νκΈΈλ κ·Έλ°λ°©μμ΄ νμνκ±°μ
μΊλ¦ν° μν λ³μ μ μ₯ν λ €κ΅¬μ. μν λ³μμ μ¬λ¬κ°μ§ κ°μ΄ λ§μ΄ μ ν λλλ°, state κ°μ μ§μ μ°μ°μ νλκΉ λ무 볡μ‘ν΄μμ. γ γ animatorλ Έλ Έ.
νλΌνΌν°λ₯Ό μ΄μ©νλ©΄ λκΈ΄νλλ°.. μ μ΄μ κ·Έλ° μ€μλ₯Ό νμ§λ§. μ΄λ°κ±° νλνλκΉμ§ μ€μν κ±° μκ°ν΄μ μ½λ©νλ©΄ λ체 μ½λ©μ체λ₯Ό κ²λμ μ΄μ°νλκ±°λ. κ·Έλ¬λ€ λ©μλ νΈμΆ μ€μμ λν λμ± κ°μκ²λ κ³ λ―Όνκ² λ€. κ²μμμ±νλ €λ©΄ μ΄λ° κ³ λ―Όμ체λ₯Ό νμ§λ§
λ΅λ³μΌλ‘λ νλΌνΌν°λ₯Ό μ°κ³ flag λ³μλ₯Ό νλ λ λλ©΄λ¨ bool isLocked; private int _variable; public int Variable { get => _variable; set { if(isLocked) return; _variable = value; isLocked = true; } }
public SetAndUnlock(int param) { isLocked = false; Variable = param; }
μ~~~ μ΄ν΄νμ΅λλ€. κ°μ¬ν©λλ€. μ΄λ κ² μ‘°κΈλ§ 머리λ₯Ό ꡴리면 λλλ°... μ λ무 λν¨. γ γ γ κΉ¨μ°μ³ μ£Όμ μ κ°μ¬ν΄μ. μ΄μΌκΈ°νλ°λ‘, μλλ μ무μκ°μμ΄ state μ°λ©΄μ μ½λ©νλλ°, λμ€μλ λμ ν μμλ³Όμκ° μκ²λλλΌ... κ·Έλμ μ... λ΄κ±΄ λͺ°λΌλ stateλ³μλ λ§μ°λ©΄ μλκ² λ€λ μκ°μ΄ λ€μμμ...
μ΄μ¨λ ClassA λ΄μμ νΈμΆ μλκ² νκ³ μΆμΌλ©΄, public struct StateValue{public int i;} μ΄λ°μμΌλ‘ classAλ°μμ "κ° νμ"μΌλ‘ i κ°μ ν¨νΉνκ³ νμν λλ§ κ°μ Έμμ μ°λ μλ°μλ μλκ±°κ°μ. μμ§ν ClassA λ΄λΆμμ μ¬μ©νκ² λ€κ³ iλ₯Ό μ μΈν΄λκ³ μ κ·Όμλκ² ν΄λ¬λΌλ건 λ§μ΄μλ¨ γ γ μΈλΆν΄λμ€λΌλ©΄ λͺ¨λ₯ΌκΉ. κ·Έλ₯ μν λ³μ iλ₯Ό μΈλΆμμ ν¨νΉν΄μ μ¬μ©νλ λ°©λ²λ°μ μμ
μ~~~ μ΄ν΄νμ. κ°μ¬ ν΄μ. ... λ무 λΉμ°νκ±Έ μ΄λ ΅κ² μκ°νλ€μ. γ γ γ
λ§μ§λ§ κ²°λ‘ . μ‘λ€ν μ€μ μμ΄, λ³μλ₯Ό public __state λΌλ μμΌλ‘ λ§λ€κΈ°λ‘ νμ. μΈλλ°λ₯Ό λκ° λΆμ¬μ, __μ κ°μ΄ νΉλ³νκ² μμλλ λ³μλ μ§μ 건λ리면 μλλ κ²μΌλ‘ μ ν΄λκ³ μ½λ©νκΈ°λ‘ νμ΄μ ^^*. λ΅λ³μ£Όμ λΆλ€ λ무 κ°μ¬ν©λλ€. λλΆμ λκ° μ°Έκ³ κ° λ§μ΄ λμμ΅λλ€.
λΆλͺ¨μ private iλ public νλ‘νΌν° μ μΈνκ³ μμ λ°μμ μ°λ©΄λ¨ κ·ΈλΌ μμμ iλ₯Ό κ·Έλ₯ μ κ·Ό λͺ»ν¨