[C#] struct ๋Œ€์‹  class๋ฅผ ์จ์•ผ ํ•  ๋•Œ

2023. 3. 18. 16:53ยท๐Ÿ“ Language/โœ C#

struct ๋Œ€์‹  class๋ฅผ ์จ์•ผ ํ•  ๋•Œ

๊ฐ„๋‹จํ•œ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ํ‘œํ˜„ํ•  ๋•Œ ์ข…์ข… struct๋ฅผ ์‚ฌ์šฉํ•˜๊ณค ํ•œ๋‹ค. ์ด๋•Œ ํ•จ์ˆ˜ ์•ˆ์—์„œ ์‚ฌ์šฉ๋˜๋Š” struct๋Š” Value ํƒ€์ž…์œผ๋กœ ์Šคํƒ์— ์ƒ์„ฑ๋˜๊ณ , class๋Š” Reference ํƒ€์ž…์œผ๋กœ ์ธ์Šคํ„ด์Šค๊ฐ€ ํž™์— ์ƒ์„ฑ๋œ๋‹ค. ์ด๋Ÿฌํ•œ ๊ตฌ์กฐ์ ์ธ ์ฐจ์ด๋Š” ๋•Œ๋กœ ๋ฒ„๊ทธ๋ฅผ ๋ฐœ์ƒ์‹œํ‚ค๊ณค ํ•œ๋‹ค.

 

์•„๋ž˜์™€ ๊ฐ™์€ ์˜ˆ์ œ๊ฐ€ ์žˆ๋‹ค.

struct Employee
{
    public string Name { get; set; }
    public int Salary { get; set; }
}

class HR
{
    public void RaiseSalary(Employee emp)
    {
        emp.Salary = emp.Salary + 1000;
    }
}

Employee emp = new Employee();
emp.Name = "Lee";
emp.Salary = 9000;

HR hr = new HR();
Console.WriteLine(emp.Salary); // ์ธ์ƒ ์ „
hr.RaiseSalary(emp);
Console.WriteLine(emp.Salary); // ์ธ์ƒ ํ›„

 

์œ„ ์˜ˆ์ œ์—์„œ ์ธ์ƒ ํ›„ ์˜ˆ์ƒ๋˜๋Š” ์ถœ๋ ฅ ๊ฐ’์€ 10000์ผ ๊ฒƒ ๊ฐ™์ง€๋งŒ, ์‹ค์ œ ์ถœ๋ ฅ ๊ฐ’์€ 9000์ด ๋‚˜์˜จ๋‹ค.

 

์™œ ๊ทธ๋Ÿด๊นŒ?

 

๋ฌธ์ œ๋Š” Employee๊ฐ€ struct ๊ตฌ์กฐ์ฒด๋ผ๋Š” ์ ์ด๋‹ค. struct๋Š” Value ํƒ€์ž…์ด๋ผ ๋กœ์ปฌ ๋ณ€์ˆ˜๋กœ ์‚ฌ์šฉ๋˜๊ฑฐ๋‚˜ ํ•จ์ˆ˜๊ฐ„ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ์ „๋‹ฌ๋  ๋•Œ ์Šคํƒ์— ์ƒ์„ฑ๋œ๋‹ค. ์ด๋Š” ์ „์ฒด struct ๋ฉค๋ฒ„๋“ค์„ ๋ณต์‚ฌํ•˜์—ฌ ์Šคํƒ์— ์ƒˆ๋กœ์šด ๋ณต์ œ๋ณธ์œผ๋กœ ์ƒ์„ฑํ•˜์—ฌ ๋ฉ”์„œ๋“œ์—์„œ ๋ณต์ œ๋ณธ์˜ ๊ฐ’์ด ๋ณ€๊ฒฝ๋˜๋”๋ผ๋„ ๋ฉ”์„œ๋“œ ๋ฆฌํ„ด ์‹œ ์›๋ณธ์˜ ๊ฐ’์—๋Š” ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š๊ฒŒ ๋˜๋Š” ๊ฒƒ์ด๋‹ค.

 

์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” class๋กœ ๋ณ€๊ฒฝํ•ด์•ผ ํ•œ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ๋ณต์ œ๋ณธ์œผ๋กœ ์ „๋‹ฌ๋˜์ง€ ์•Š๊ณ  ํž™ ์ƒ์— ์žˆ๋Š” ๊ฐ์ฒด์˜ ๋ ˆํผ๋Ÿฐ์Šค๋กœ ์ „๋‹ฌ๋˜๋ฏ€๋กœ ๋ฉ”์„œ๋“œ์—์„œ ๋ณ€๊ฒฝํ•ด๋„ ๊ฐ’์ด ์œ ์ง€๋˜๊ฒŒ ๋œ๋‹ค.

 

https://www.csharpstudy.com/Mistake/Article/1

 

struct ๋Œ€์‹  class๋ฅผ ์จ์•ผํ•  ๋•Œ? - C# ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฐฐ์šฐ๊ธฐ (Learn C# Programming)

struct ๋Œ€์‹  class๋ฅผ ์จ์•ผํ•  ๋•Œ? [์ œ๋ชฉ] struct ๋Œ€์‹  class๋ฅผ ์จ์•ผํ•  ๋•Œ? C#์—์„œ ๊ฐ„๋‹จํ•œ ๋ฐ์ดํƒ€ ๊ตฌ์กฐ๋ฅผ ํ‘œํ˜„ํ•  ๋•Œ ์ข…์ข… struct ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ํ•จ์ˆ˜ ์•ˆ์—์„œ ์‚ฌ์šฉ๋˜๋Š” struct๋Š” Value ํƒ€์ž…์œผ๋กœ ์Šคํƒ์— ์ƒ์„ฑ๋˜๊ณ , cla

www.csharpstudy.com

์ €์ž‘์žํ‘œ์‹œ (์ƒˆ์ฐฝ์—ด๋ฆผ)
'๐Ÿ“ Language/โœ C#' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [C#] DateTime, TimeSpan, Stopwatch
  • [C#] Math
  • [C#] string ๊ฐ์ฒด ์‚ฌ์šฉ์—์„œ ํ”ํžˆ ํ•˜๋Š” ์‹ค์ˆ˜
  • [C# 8.0] ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ (3) - using ์„ ์–ธ, ๋„ ๋ณ‘ํ•ฉ ํ• ๋‹น์ž, ๊ตฌ์กฐ์ฒด ์ฝ๊ธฐ ์ „์šฉ ๋ฉค๋ฒ„
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#] struct ๋Œ€์‹  class๋ฅผ ์จ์•ผ ํ•  ๋•Œ
์ƒ๋‹จ์œผ๋กœ

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