C# 7.0μ μλ‘μ΄ κΈ°λ₯
4. out νλΌλ―Έν°
μ΄μ λ²μ μμλ λ©μλ νΈμΆ μ out νλΌλ―Έν°λ₯Ό μ¬μ©ν λ 미리 μ μΈ ν μ¬μ©ν΄μΌ νλ€. μ΄λ ν¨μλ₯Ό νΈμΆνλ λ¬Έμ₯ λ°μ λ³μλ₯Ό μ μΈν¨μΌλ‘μ¨ λ³μκ° μ¬μ©λλ λ²μλ₯Ό λͺ μμ μΌλ‘ μ§μ νλ μ΄μ λ μμλ€. ν° λ¬Έμ λ μλμ§λ§ λ²κ±°λ‘κ² λκ»΄μ§ λκ° μλ€. C# 7.0μμλ λ©μλ νΈμΆ μ νλΌλ―Έν° νμ μ outκ³Ό ν¨κ» μ§μ ν μ μλλ‘ νμλ€. μ΄λ κ² μ§μ λ νλΌλ―Έν°λ μμ μ λλ¬μΌ λΈλ‘ λ΄μμλ§ μ¬μ© κ°λ₯νλ€.
void Test()
{
// μ΄μ λ°©μ
//int x, y;
//GetXY(out x, out y);
// out νλΌλ―Έν°
GetXY(out int x, out int y);
Console.WriteLine($"{x},{y}");
}
out νλΌλ―Έν° νμ μ λͺ μμ μΌλ‘ μ§μ νμ§ μκ³ var ν€μλλ₯Ό μ¬μ©ν΄μ μ§μ ν μλ μλ€. μ΄λ μ»΄νμΌλ¬λ νΈμΆλλ λ©μλμ νλΌλ―Έν° μ μλ₯Ό λ³΄κ³ νλΌλ―Έν° νμ μ μ μΆνκ² λλ€. λν out νλΌλ―Έν°κ° νμ μλ κ²½μ° λ©μλ νΈμΆ μ ν΄λΉ νλΌλ―Έν°λ₯Ό μλ΅ν μ μλ€.
// out var: νλΌλ―Έν° μ μΆ
GetXY(out var x, out var y);
// out _: νλΌλ―Έν° μλ΅
GetXY(out var x, out _);
5. 리ν°λ΄ νν
C# 7.0μμλ μ«μλ₯Ό ννν λ _μ μ¬μ©νμ¬ μλ¦Ώμλ₯Ό λΆλ¦¬ν μ μλ€. μ΄λ κΈ΄ μ«μμ κ²½μ° μ½κΈ° λΆνΈνκΈ° λλ¬Έμ μλ¦Ώμλ₯Ό νμνλλ‘ ν κ²μ΄λ€. λν, μ΄μ§μ κ°μ μ½κ² νκΈ°νκΈ° μνμ¬ μ΄μ§ 리ν°λ΄(binary literal)μ μ§μνλ€. 리ν°λ΄ κ°μ 0bλ‘ μμνλ©΄ μ΄λ μ΄μ§μλ₯Ό μλ―Ένλ€. κΈ°μ‘΄μ 16μ§μ 리ν°λ΄μ 0xλ‘ μμνμλλ°, μ΄λ²μ μ΄μ§μ 리ν°λ΄λ μΆκ°ν κ²μ΄λ€.
int λ°±λ§ = 1_000_000;
int hexa = 0x10_FF_FF_00;
double d = 1_000.000_123;
// μ΄μ§ 리ν°λ΄
int bin = 0b1001_1111_0000_0101;