본문 바로가기

C# 개인 공부 기록용/어소트락 게임아카데미 - C# 무료강의[2019] 총48강

[C# 강의 11화] !중요! 값형의 메모리 구조 및 처리 개념

출처 : https://www.youtube.com/watch?v=o7QyAiqGCyo&list=PL4SIC1d_ab-Y-bBKojxhtFWwNpawMM1h5&index=11

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

class Player
{
    int AT;
    int HP;

    public void Test(int _Dmg)
    {
        // 이안에 지역변수에서 벌어지는 일은
        // 이 안에서 벌어지는 일일 뿐이다.
        _Dmg = 1000;
    }
}

namespace Memory_Value
{
    class Program
    {
        static void Main(string[] args)
        {
            Player NewPlayer = new Player();

            // 함수의 인자값
            int Value = 0;
            NewPlayer.Test(Value);

            // Q) Value 값은 얼마가 나올까요?
            // 1. 0
            // 2. 1000 -> 프로그래밍을 처음하시는 분들은 대부분 이걸 말한다.

            // 왜냐 아직 메모리를 이해하지 못했다.
            // 데이터의 흐름을 이해하고 있지 못하다.
            // 왜 1000이 나오지 않을까?
            // 이걸 이해하려면 값과 위치에 대해서 이해해야 한다.

            Console.WriteLine(Value);
        }
    }
}

Return

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

class Player
{
    int AT;
    int HP;

    public int Test(int _Dmg)
    {
        // 이안에 지역변수에서 벌어지는 일은
        // 이 안에서 벌어지는 일일 뿐이다.
        _Dmg = 1000;

        return _Dmg;
    }
}

namespace Memory_Value
{
    class Program
    {
        static void Main(string[] args)
        {
            Player NewPlayer = new Player();

            // 함수의 인자값
            int Value = 0;
            NewPlayer.Test(Value);

            // 지금까지 배운 문법으로는 절대 불가능하다.
            // 그러면 어떻게 해야 하느냐?
            // 이렇게 처리해줘야 한다.
            // 이걸 값형의 처리
            Value = NewPlayer.Test(Value);

            // Q) Value 값은 얼마가 나올까요?
            // 1. 0
            // 2. 1000 -> 프로그래밍을 처음하시는 분들은 대부분 이걸 말한다.

            // 왜냐 아직 메모리를 이해하지 못했다.
            // 데이터의 흐름을 이해하고 있지 못하다.
            // 왜 1000이 나오지 않을까?
            // 이걸 이해하려면 값과 위치에 대해서 이해해야 한다.

            Console.WriteLine(Value);
        }
    }
}