๋ชฉ์ฐจ
1. ํ ๋ณํ
- ๋ฐ์ดํฐ์ ํ์์ ๋ณ๊ฒฝ
- ์ ์ โ ์ค์
- ๋ฌธ์์ด โ ๊ธฐ๋ณธ ๋ฐ์ดํฐํ
- ์บ์คํธ ์ฐ์ฐ์ : '()'
- ToString() : ๋ฌธ์์ด๋ก ๋ณํ
- Parse() : ์คํธ๋ง ๐ ์ ์, ์ค์ ์๋ฃํ์ผ๋ก ๋ณํ
- Convert.~ :
double dNum2 = 12345678912;
int num2 = (int)dNum2; // ํฐ ๋ฐ์ดํฐ ํ์ ์์ ๋ฐ์ดํฐํ์ผ๋ก ๋ณ๊ฒฝ์ ์ฃผ์
string strA = "100";
string strB = "2314.12";
string strC = "1213.4";
int parseA = int.Parse(strA); // int parseA = 100;
int a = int.Parse(Console.ReadLine()); // string์ผ๋ก ์
๋ ฅ๋๋ฉด int๋ก ๋ณํ๋๋ค.
int convertA = Convert.ToInt32(strA);
float convertB = Convert.ToSingle(strB);
decimal convertC = Convert.ToDecimal(strC);
2. ๊ฐ ํ์(call by value) vs ์ฐธ์กฐํ(call by reference)
- ๊ฐ ํ์
- ๋ชจ๋ ์์น ํํ, char, bool, enum ๋ฑ
- ๋ ๊ฐ์ ๋ณ์๊ฐ ์๋ก ์ํฅ์ ์ฃผ์ง ์์
- ์คํ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅ๋จ
- ์ฐธ์กฐํ
- ๋ฐฐ์ด, string, class, interface, delegate
- ๋ ๊ฐ์ ๋ณ์๊ฐ ์๋ก ์ํฅ์ ์ค๋ค.
- ๊ฐ์ ์ ์ฅํ๋ ๊ฒ์ด ์๋ ์ฃผ์๋ฅผ ์ฐธ์กฐ
- ํ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅ๋จ
- ์ฃผ์ : ๋ฉ๋ชจ๋ฆฌ ์์ ์์น
- ๊ฐ : ๊ทธ ์์น์ ์ ์ฅ๋ ์ ๋ณด
int num = 100;
int refNum = num;
refNum = 1000;
Console.WriteLine("refStr : {0}, ReferenceEquals : {1}", num, Object.ReferenceEquals(num, refNum));
int[] arrNum = {100, 200};
int[] refArrNum = arrNum;
refArrNum[0] = 1000;
Console.WriteLine("refStr : {0}, ReferenceEquals : {1}", arrNum[0], Object.ReferenceEquals(refArrNum, arrNum));
refStr : 100, ReferenceEquals : False
refStr : 1000, ReferenceEquals : True
3. boxing, unboxing
int i = 123;
object o = i; // boxing (stack -> heap)
int j = (int)o; // unboxing (heap -> stack)
- ๋ฐ์ฑ boxing : ์คํ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅ๋ ๋ฐ์ดํฐ๊ฐ ํ ๋ฉ๋ชจ๋ฆฌ๋ก ์ ์ฅ๋๋ ๊ฒ (stack ๐ heap)
- ์ธ๋ฐ์ฑ unboxing : ํ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅ๋ ๋ฐ์ดํฐ๊ฐ ์คํ ๋ฉ๋ชจ๋ฆฌ๋ก ์ ์ฅ๋๋ ๊ฒ (heap ๐ stack)
- ์ต์ํ ํ๋ ๊ฒ์ด ์ข๋ค!
๐ heap, stack
- stack : ๋งค๊ฐ๋ณ์, ์ง์ญ๋ณ์, ๋ฆฌํด๊ฐ
- heap : ์ ์ญ๋ณ์, new
'๐ฉโ๐ป ํ๋ก๊ทธ๋๋ฐ > ๐ C#' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[C#] ์ง์ญ ๋ณ์, ์กฐ๊ฑด๋ฌธ(๋ถ๊ธฐ๋ฌธ), ๋ฐ๋ณต๋ฌธ, ์ ํ๋ฌธ (0) | 2024.05.08 |
---|---|
[C#] ์ฐ์ฐ์ ์ ๋ฆฌ (0) | 2024.05.08 |
[C#] ๊ธฐ๋ณธ ๋ฐ์ดํฐ1 - ๋ณ์, object, enum, nullable, var, const (0) | 2024.05.07 |
[C#] ๋ท๋ทํ๋ ์์ํฌ์ C# ์ธ์ด (0) | 2024.05.05 |
1. ํ ๋ณํ
- ๋ฐ์ดํฐ์ ํ์์ ๋ณ๊ฒฝ
- ์ ์ โ ์ค์
- ๋ฌธ์์ด โ ๊ธฐ๋ณธ ๋ฐ์ดํฐํ
- ์บ์คํธ ์ฐ์ฐ์ : '()'
- ToString() : ๋ฌธ์์ด๋ก ๋ณํ
- Parse() : ์คํธ๋ง ๐ ์ ์, ์ค์ ์๋ฃํ์ผ๋ก ๋ณํ
- Convert.~ :
double dNum2 = 12345678912;
int num2 = (int)dNum2; // ํฐ ๋ฐ์ดํฐ ํ์ ์์ ๋ฐ์ดํฐํ์ผ๋ก ๋ณ๊ฒฝ์ ์ฃผ์
string strA = "100";
string strB = "2314.12";
string strC = "1213.4";
int parseA = int.Parse(strA); // int parseA = 100;
int a = int.Parse(Console.ReadLine()); // string์ผ๋ก ์
๋ ฅ๋๋ฉด int๋ก ๋ณํ๋๋ค.
int convertA = Convert.ToInt32(strA);
float convertB = Convert.ToSingle(strB);
decimal convertC = Convert.ToDecimal(strC);
2. ๊ฐ ํ์(call by value) vs ์ฐธ์กฐํ(call by reference)
- ๊ฐ ํ์
- ๋ชจ๋ ์์น ํํ, char, bool, enum ๋ฑ
- ๋ ๊ฐ์ ๋ณ์๊ฐ ์๋ก ์ํฅ์ ์ฃผ์ง ์์
- ์คํ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅ๋จ
- ์ฐธ์กฐํ
- ๋ฐฐ์ด, string, class, interface, delegate
- ๋ ๊ฐ์ ๋ณ์๊ฐ ์๋ก ์ํฅ์ ์ค๋ค.
- ๊ฐ์ ์ ์ฅํ๋ ๊ฒ์ด ์๋ ์ฃผ์๋ฅผ ์ฐธ์กฐ
- ํ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅ๋จ
- ์ฃผ์ : ๋ฉ๋ชจ๋ฆฌ ์์ ์์น
- ๊ฐ : ๊ทธ ์์น์ ์ ์ฅ๋ ์ ๋ณด
int num = 100;
int refNum = num;
refNum = 1000;
Console.WriteLine("refStr : {0}, ReferenceEquals : {1}", num, Object.ReferenceEquals(num, refNum));
int[] arrNum = {100, 200};
int[] refArrNum = arrNum;
refArrNum[0] = 1000;
Console.WriteLine("refStr : {0}, ReferenceEquals : {1}", arrNum[0], Object.ReferenceEquals(refArrNum, arrNum));
refStr : 100, ReferenceEquals : False
refStr : 1000, ReferenceEquals : True
3. boxing, unboxing
int i = 123;
object o = i; // boxing (stack -> heap)
int j = (int)o; // unboxing (heap -> stack)
- ๋ฐ์ฑ boxing : ์คํ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅ๋ ๋ฐ์ดํฐ๊ฐ ํ ๋ฉ๋ชจ๋ฆฌ๋ก ์ ์ฅ๋๋ ๊ฒ (stack ๐ heap)
- ์ธ๋ฐ์ฑ unboxing : ํ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅ๋ ๋ฐ์ดํฐ๊ฐ ์คํ ๋ฉ๋ชจ๋ฆฌ๋ก ์ ์ฅ๋๋ ๊ฒ (heap ๐ stack)
- ์ต์ํ ํ๋ ๊ฒ์ด ์ข๋ค!
๐ heap, stack
- stack : ๋งค๊ฐ๋ณ์, ์ง์ญ๋ณ์, ๋ฆฌํด๊ฐ
- heap : ์ ์ญ๋ณ์, new
'๐ฉโ๐ป ํ๋ก๊ทธ๋๋ฐ > ๐ C#' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[C#] ์ง์ญ ๋ณ์, ์กฐ๊ฑด๋ฌธ(๋ถ๊ธฐ๋ฌธ), ๋ฐ๋ณต๋ฌธ, ์ ํ๋ฌธ (0) | 2024.05.08 |
---|---|
[C#] ์ฐ์ฐ์ ์ ๋ฆฌ (0) | 2024.05.08 |
[C#] ๊ธฐ๋ณธ ๋ฐ์ดํฐ1 - ๋ณ์, object, enum, nullable, var, const (0) | 2024.05.07 |
[C#] ๋ท๋ทํ๋ ์์ํฌ์ C# ์ธ์ด (0) | 2024.05.05 |