[C#] ๊ธฐ๋ณธ ๋ฐ์ดํ„ฐ2 - ํ˜• ๋ณ€ํ™˜, ๊ฐ’ ํ˜•์‹ vs ์ฐธ์กฐํ˜•, ๋ฐ•์‹ฑ vs ์–ธ๋ฐ•์‹ฑ

2024. 5. 7. 14:46ยท ๐Ÿ‘ฉโ€๐Ÿ’ป ํ”„๋กœ๊ทธ๋ž˜๋ฐ/๐Ÿ• C#
๋ชฉ์ฐจ
  1. 1.  ํ˜• ๋ณ€ํ™˜
  2. 2. ๊ฐ’ ํ˜•์‹(call by value) vs ์ฐธ์กฐํ˜•(call by reference)
  3. 3. boxing, unboxing

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. 1.  ํ˜• ๋ณ€ํ™˜
  2. 2. ๊ฐ’ ํ˜•์‹(call by value) vs ์ฐธ์กฐํ˜•(call by reference)
  3. 3. boxing, unboxing
'๐Ÿ‘ฉโ€๐Ÿ’ป ํ”„๋กœ๊ทธ๋ž˜๋ฐ/๐Ÿ• C#' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [C#] ์ง€์—ญ ๋ณ€์ˆ˜, ์กฐ๊ฑด๋ฌธ(๋ถ„๊ธฐ๋ฌธ), ๋ฐ˜๋ณต๋ฌธ, ์ ํ”„๋ฌธ
  • [C#] ์—ฐ์‚ฐ์ž ์ •๋ฆฌ
  • [C#] ๊ธฐ๋ณธ ๋ฐ์ดํ„ฐ1 - ๋ณ€์ˆ˜, object, enum, nullable, var, const
  • [C#] ๋‹ท๋„ทํ”„๋ ˆ์ž„์›Œํฌ์™€ C# ์–ธ์–ด
peewoong
peewoong
peewoong.logpeewoong ๋‹˜์˜ ๋ธ”๋กœ๊ทธ์ž…๋‹ˆ๋‹ค.
peewoong
peewoong.log
peewoong
์ „์ฒด
์˜ค๋Š˜
์–ด์ œ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ
    • ๐Ÿ™‚ Info
    • ๐ŸŽฎ ๊ฒŒ์ž„ ๊ด€๋ จ ๊ฐœ๋…
    • ๐Ÿ‘ฉโ€๐Ÿ’ป ํ”„๋กœ๊ทธ๋ž˜๋ฐ
      • ๐ŸŽญ C
      • ๐ŸŽ  C++
      • ๐Ÿ• C#
      • โœจ ์ž๋ฃŒ๊ตฌ์กฐ
      • ๐ŸŽ ์•Œ๊ณ ๋ฆฌ์ฆ˜
      • ๐Ÿ”ข ์ˆ˜ํ•™
      • ๐ŸŽจ ๊ทธ๋ž˜ํ”ฝ์Šค
    • โš™๏ธ ์—”์ง„
      • ๐Ÿง€ VS
      • ๐Ÿค ์œ ๋‹ˆํ‹ฐ
      • ๐Ÿซ ์–ธ๋ฆฌ์–ผ
      • ๐Ÿน DirectX
      • ๐Ÿฆฅ error
    • ๐Ÿ“ฝ๏ธ ํ”„๋กœ์ ํŠธ
    • ๐Ÿง ์ฝ”๋”ฉํ…Œ์ŠคํŠธ

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ํ™ˆ
  • ํƒœ๊ทธ
  • ๋ฐฉ๋ช…๋ก

๊ณต์ง€์‚ฌํ•ญ

์ธ๊ธฐ ๊ธ€

ํƒœ๊ทธ

์ตœ๊ทผ ๋Œ“๊ธ€

์ตœ๊ทผ ๊ธ€

hELLO ยท Designed By ์ •์ƒ์šฐ.v4.2.0
peewoong
[C#] ๊ธฐ๋ณธ ๋ฐ์ดํ„ฐ2 - ํ˜• ๋ณ€ํ™˜, ๊ฐ’ ํ˜•์‹ vs ์ฐธ์กฐํ˜•, ๋ฐ•์‹ฑ vs ์–ธ๋ฐ•์‹ฑ
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”

๋‹จ์ถ•ํ‚ค

๋‚ด ๋ธ”๋กœ๊ทธ

๋‚ด ๋ธ”๋กœ๊ทธ - ๊ด€๋ฆฌ์ž ํ™ˆ ์ „ํ™˜
Q
Q
์ƒˆ ๊ธ€ ์“ฐ๊ธฐ
W
W

๋ธ”๋กœ๊ทธ ๊ฒŒ์‹œ๊ธ€

๊ธ€ ์ˆ˜์ • (๊ถŒํ•œ ์žˆ๋Š” ๊ฒฝ์šฐ)
E
E
๋Œ“๊ธ€ ์˜์—ญ์œผ๋กœ ์ด๋™
C
C

๋ชจ๋“  ์˜์—ญ

์ด ํŽ˜์ด์ง€์˜ URL ๋ณต์‚ฌ
S
S
๋งจ ์œ„๋กœ ์ด๋™
T
T
ํ‹ฐ์Šคํ† ๋ฆฌ ํ™ˆ ์ด๋™
H
H
๋‹จ์ถ•ํ‚ค ์•ˆ๋‚ด
Shift + /
โ‡ง + /

* ๋‹จ์ถ•ํ‚ค๋Š” ํ•œ๊ธ€/์˜๋ฌธ ๋Œ€์†Œ๋ฌธ์ž๋กœ ์ด์šฉ ๊ฐ€๋Šฅํ•˜๋ฉฐ, ํ‹ฐ์Šคํ† ๋ฆฌ ๊ธฐ๋ณธ ๋„๋ฉ”์ธ์—์„œ๋งŒ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.