인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

Inflearn Community Q&A

peterkimzz's profile image
peterkimzz

asked

[MMORPG Game Development Series with C# and Unity] Part 1: Introduction to Basic C# Programming

The identity of static

static vs new 메모리 할당

Written on

·

220

3

class Calculator
    {
        static public int StaticAdd(int a, int b)
        {
            return a + b;
        }

        public int Add(int a, int b)
        {
            return a + b;
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            int num1 = 10;
            int num2 = 20;

            Calculator calculator = new Calculator();
            int result1 = calculator.Add(10, 20);

            int result2 = Calculator.StaticAdd(num1, num2);
        }
    }

하나 궁금증이 생겼는데 new로 Calculator를 만들어서 add를 호출하는것과, static 함수로 add를 호출하는 게 메모리 쪽에서 차이가 있을 것 같아서 질문드립니다.

Knight와는 조금 다른 케이스일 것 같지만, static 함수를 사용하면 calculator 변수를 만들 필요가 없어서 추가적인 메모리를 먹지 않고 Add 함수를 사용할 수 있는 건가요?? 급 궁금해서 질문드립니다.

C#

Answer 1

2

rookiss님의 프로필 이미지
rookiss
Instructor

안녕하세요,

말씀주신대로 Calculator 클래스에 특별히 저장하고 있어야 하는 값이 없다면 (최근 연산 결과라거나..)

함수를 static으로 만들어서 Calculator 인스턴스 없이 바로 사용하는 것을 고려할 수 있겠습니다. (Console.Write처럼)

그러면 인스턴스 생성/소멸 비용 및 메모리 측면에서 모두 절약이 되겠죠 !

감사합니다.

peterkimzz's profile image
peterkimzz

asked

Ask a question