πŸ“£μ–Έμ–΄/C#

[C#] μƒμˆ˜(constants)와 μ—΄κ±°ν˜•(enumerator)

ye3_ 2021. 11. 2. 15:53

μƒμˆ˜μ™€ μ—΄κ±°ν˜•μ€ λ³€μˆ˜μ™€ 달리 μ•ˆμ— λ‹΄κΈ΄ 데이터λ₯Ό μ ˆλŒ€ λ°”κΏ€ 수 μ—†λŠ” λ©”λͺ¨λ¦¬ 곡간

 

μƒμˆ˜ μ„ μ–Έ

λ³€μˆ˜ μ„ μ–Έκ³Ό μœ μ‚¬ν•œ λ°©μ‹μœΌλ‘œ μ•žμ— constλ₯Ό 뢙인닀.

const int a = 3;
const string b = "hello";

 

μ—΄κ±°ν˜• μ„ μ–Έ

같은 범주에 μ†ν•˜λŠ” μ—¬λŸ¬ 개의 μƒμˆ˜λ₯Ό μ„ μ–Έν•  λ•Œ μœ μš©ν•˜λ©°, enum ν‚€μ›Œλ“œλ₯Ό μ΄μš©ν•œλ‹€.

enum Reseult { YES, NO, CANCEL, CONFIRM, OK }

// 좜λ ₯
Console.WriteLine((int)Result.YES);	// 0
Console.WriteLine((int)Result.NO);	// 1

// μ—΄κ±° ν˜•μ‹ λ³€μˆ˜ μ„ μ–Έ
Result result = Result.YES;
Console.WriteLine(result == Result.YES);	// True
Console.WriteLine(result == Result.NO);		// False

μ—΄κ±° ν˜•μ‹ μ•ˆμ— μ„ μ–Έλœ μƒμˆ˜λ“€μ€ μ–΄λ–€ 값도 ν• λ‹Ήν•˜μ§€ μ•Šμ•˜λ‹€.

μ—΄κ±° ν˜•μ‹μ˜ μš”μ†ŒλŠ” 0λΆ€ν„° 1μ”© μ¦κ°€ν•œ 값이 컴파일러λ₯Ό 톡해 μžλ™μœΌλ‘œ ν• λ‹Ήλœλ‹€.

μ—΄κ±° ν˜•μ‹μ˜ 각 μš”μ†ŒλŠ” μ„œλ‘œ μ€‘λ³΅λ˜μ§€ μ•ŠλŠ” 값을 κ°–κ³  μžˆλ‹€λŠ” 데 μ˜λ―Έκ°€ μžˆλ‹€.

 

μš”μ†Œμ— 직접 값을 ν• λ‹Ήν•  수 μžˆλ‹€.

직접 값을 ν• λ‹Ήν•œ μš”μ†Œμ˜ λ‹€μŒ μš”μ†ŒλŠ” 값을 ν• λ‹Ήν•˜μ§€ μ•Šμ•˜μ„ 경우

이전 μš”μ†Œμ˜ κ°’ +1 이 μžλ™μœΌλ‘œ ν• λ‹Ήλœλ‹€.

enum testResult { YES = 10, NO, CANCEL, CONFIRM = 50, OK }

Console.WriteLine((int)testResult.YES);	    // 10
Console.WriteLine((int)testResult.NO);	    // 11
Console.WriteLine((int)testResult.CANCEL);	// 12
Console.WriteLine((int)testResult.CONFIRM);	// 50
Console.WriteLine((int)testResult.OK);	    // 51