โ object ํ์
.NET์ ๋ชจ๋ ํ์ ์ System.Object ํด๋์ค์์ ํ์๋๋ฉฐ C#์์๋ object ๋ผ๋ ํค์๋๋ก ๋ชจ๋ ํ์ ์ ์ต์์ ๋ถ๋ชจ ํด๋์ค๋ก์ ์ฌ์ฉ๋๋ค.
โ ๊ธฐ๋ณธ ๋ฉ์๋
object ํ์ ์ ๋ชจ๋ C# ๊ฐ์ฒด์์ ์ฌ์ฉํ ์ ์๋ ๊ธฐ๋ณธ ๋ฉ์๋๋ฅผ ์ ๊ณตํ๋ค.
- ToString(): ๊ฐ์ฒด์ ๋ฌธ์์ด ํํ์ ๋ฐํํ๋ค.
- Equals(object obj): ๋ ๊ฐ์ฒด๊ฐ ๊ฐ์์ง ๋น๊ตํ๋ค. (์ฐธ์กฐ ๋น๊ต)
- GetHashCode(): ๊ฐ์ฒด์ ํด์ ์ฝ๋๋ฅผ ๋ฐํํ๋ค.
- GetType(): ๊ฐ์ฒด์ ๋ฐํ์ ํ์ ์ ๋ฐํํ๋ค.
* ๊ฐ ๋น๊ต vs ์ฐธ์กฐ ๋น๊ต
๊ฐ ๋น๊ต : ์คํ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅ๋ ๊ฐ ์์ฒด๋ฅผ ๋น๊ตํ๋ค.
์ฐธ์กฐ ๋น๊ต : ๋ ๊ฐ์ฒด๊ฐ ๋์ผํ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๋ฅผ ์ฐธ์กฐํ๋์ง ๋น๊ตํ๋ค.
C#์ ๋ชจ๋ ํ์ ์ object์์ ํ์๋๋ฏ๋ก C#์ ๊ธฐ๋ณธ ๋ฐ์ดํฐ ํ์ ์ object ํ์ ์ผ๋ก ํ๋ณํ ํ ์ ์๋ค.
โ ๋ฐ์ฑ (Boxing)
๊ฐ ํ์ ์ object ํ์ ์ผ๋ก ๋ณํํ๋ ๊ณผ์ .
1. ํ ๋ฉ๋ชจ๋ฆฌ์ ์๋ก์ด ๊ฐ์ฒด๋ฅผ ์ํ ๋ฉ๋ชจ๋ฆฌ ํ ๋น
2. ์คํ ๋ฉ๋ชจ๋ฆฌ์ ๊ฐ ํ์ ๋ฐ์ดํฐ๋ฅผ ํ ๋ฉ๋ชจ๋ฆฌ์ ๋ณต์ฌ
3. ํ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅ๋ ๊ฐ์ฒด๋ฅผ ๊ฐ๋ฆฌํค๋ ์ฐธ์กฐ ์์ฑ ํ ์คํ์ ์ ์ฅ
int number = 123;
object boxedNumber = number; // ๋ฐ์ฑ
โ ์ธ๋ฐ์ฑ (Unboxing)
object ํ์ ์ผ๋ก ๋ณํ๋ ๋ฐ์ดํฐ๋ฅผ ๋ค์ ์๋์ ๊ฐ ํ์ ์ผ๋ก ๋ณํํ๋ ๊ณผ์ .
1. ์ค์ ๊ฐ์ฒด์ ํ์ ์ด ๋ชฉํ ํ์ ๊ณผ ์ผ์นํ๋์ง ํ์ธ
2. ํ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ฅผ ์คํ ๋ฉ๋ชจ๋ฆฌ์ ๋ณต์ฌ
int unboxedNumber = (int)boxedNumber; // ์ธ๋ฐ์ฑ'๐ C#' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| in, out, ref ํค์๋ (0) | 2024.08.19 |
|---|---|
| IComparable, IComparer ์ธํฐํ์ด์ค (0) | 2024.08.19 |
| ์ ๊ท ํํ์ (Regular Expression) (0) | 2024.08.14 |
| ํ์ฅ ๋ฉ์๋ (Extension Method) (0) | 2024.08.14 |
| ๋ฒ์ ํํ์ (Range Expression) (0) | 2024.08.08 |