[C# 7.0] μƒˆλ‘œμš΄ κΈ°λŠ₯ (3) - out νŒŒλΌλ―Έν„°, λ¦¬ν„°λŸ΄ ν‘œν˜„

2023. 1. 28. 13:49Β·πŸ“ Language/✏ C#

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;
μ €μž‘μžν‘œμ‹œ (μƒˆμ°½μ—΄λ¦Ό)
'πŸ“ Language/✏ C#' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€
  • [C# 8.0] μƒˆλ‘œμš΄ κΈ°λŠ₯ (1) - λ””ν΄νŠΈ μΈν„°νŽ˜μ΄μŠ€ 멀버, νŒ¨ν„΄ λ§€μΉ­
  • [C# 7.0] μƒˆλ‘œμš΄ κΈ°λŠ₯ (4) - μ’…λ£Œμž(Deconstructor), ref local, ref return
  • [C# 7.0] μƒˆλ‘œμš΄ κΈ°λŠ₯ (2) - νŠœν”Œ(Tuple), 둜컬 ν•¨μˆ˜(Local Function)
  • [C# 7.0] μƒˆλ‘œμš΄ κΈ°λŠ₯ (1) - νŒ¨ν„΄ λ§€μΉ­
Blxxming
Blxxming
CS 지식과 κ³΅λΆ€ν•˜λ‹€ 배운 것, κ²½ν—˜ν•œ 것 등을 κΈ°λ‘ν•˜λŠ” λΈ”λ‘œκ·Έμž…λ‹ˆλ‹€.
  • Blxxming
    πŸ’‘λ²ˆλœ©πŸ’‘
    Blxxming
  • 전체
    였늘
    μ–΄μ œ
  • 곡지사항

    • Tech Interview
    • πŸ“š Tech (246)
      • πŸ“ Computer Science (96)
        • ✏ OS (12)
        • ✏ Network & Web (10)
        • ✏ Database (11)
        • ✏ Data Structure (6)
        • ✏ Algorithm (40)
        • ✏ Design Pattern (9)
        • ✏ Cloud Computing (3)
        • ✏ (5)
      • πŸ“ Language (73)
        • ✏ Language (6)
        • ✏ C & C++ (11)
        • ✏ C# (19)
        • ✏ JAVA (37)
      • πŸ“ Game (43)
        • ✏ Computer Graphics (2)
        • ✏ Unity (14)
        • ✏ Unreal (26)
        • ✏ (1)
      • πŸ“ Book (34)
        • ✏ Effective (3)
        • ✏ Game Server (16)
        • ✏ Clean Code (14)
        • ✏ (1)
  • hELLOΒ· Designed Byμ •μƒμš°.v4.10.0
Blxxming
[C# 7.0] μƒˆλ‘œμš΄ κΈ°λŠ₯ (3) - out νŒŒλΌλ―Έν„°, λ¦¬ν„°λŸ΄ ν‘œν˜„
μƒλ‹¨μœΌλ‘œ

ν‹°μŠ€ν† λ¦¬νˆ΄λ°”