C# 7.0 μ°Έμ‘° λ‘컬 λ° μ°Έμ‘° λ°ν
@Patrick Smacchia λμ΄ μμ±νμ λ΄μ©μ λλ€.
C# 7.0μ refν€μλμ μ¬μ©μ νμ₯νμ΅λλ€. μ§μ λ³μλ κ΄λ¦¬λλ ν¬μΈν°κ° λ μ μμΌλ©° μλ μμ μ μ€λͺ λμ΄ μμ΅λλ€.
using System.Diagnostics;
int i = 6;
ref int j = ref i;
j = 7;
Debug.Assert(i == 7);
λν λ©μλλ κ΄λ¦¬λλ ν¬μΈν°λ₯Ό λ°νν μ μμ΅λλ€.
ref int i = ref GetRef();
static ref int GetRef() {
int[] arr = new int[6];
return ref arr[2];
}
μ΄ μλ μ¬μνμ§ μμ΅λλ€. λ¨Όμ λ°°μ΄μ΄ νμ ν λΉλκ³ λ°°μ΄ GetRef()μ λΉλνλ λ©μλλ³΄λ€ μ€λ μ§μλλ€λ μ μ μ£Όλͺ©νμμμ€.
λ°λΌμ μμ μ€ νλμ λν λ΄λΆ ν¬μΈν°λ₯Ό λ°ννλ κ²μ΄ μ’μ΅λλ€.
λμ§Έ, λ°νλ λ΄λΆ ν¬μΈν°λ λ°°μ΄μ μ μΌν GC 루νΈμ λλ€. κ·Έλ¬λ λ΄λΆ ν¬μΈν°μμ λ°°μ΄ μ°Έμ‘°λ₯Ό μ»μ μ μλ λ°©λ²μ΄ μκΈ° λλ¬Έμ λ©μλκ° λ°νλλ©΄ λ°°μ΄ μ체μ λλ¬ν μ μκ² λ©λλ€!
μλμμ μλ³Έ κΈμ νμΈνμ€ μ μμ΅λλ€.
μ½μ΄μ£Όμ
μ κ°μ¬ν©λλ€.