본문 바로가기
카테고리 없음

C# 프로그래머 되기 정적 필드 메소드와 인스턴스 소속 메소드

by ★√★ 2021. 3. 3.

안녕하세요 오늘 포스팅 할 사항은, C# 에서 class 구현 시 class 내에 구성한 메소드 Type에 대한 내용입니다. 이번 포스팅에서는 인스턴스에 속한 메소드이냐 아니냐로 구별해서 하나 하나 설명해 드리겠습니다.

 

정적-필드-인트턴스-소속-메소드-썸네일
정적-필드-인트턴스-소속-메소드-썸네일

 

그럼 C# 전문 용어로는, 정적 필드 메소드와 인스턴스 소속 메소드(이건 제가 생각한 내용입니다.)에 대해서 설명 드리도록 하겠습니다.

 

정적 필드 메소드

 

: 말 그대로, 정적 즉, 메모리를 기존에 할당하는, static 구문을 사용하여, 인스턴스 소속이 아닌, class 소속으로서, 바로 이용할 수 있는 메소드를 이야기 합니다.

 

 

인스턴스 소속 메소드

 

: 인스턴스 소속 메소드란, 클래스 내에 선언한 메소드는 Main 코드 창에서 인스턴스를 필수적으로 선언 후, 인스턴스의 하위 단계 즉, 메소드를 불러와서 구현하는 메소드입니다.

 

- 이해를 돕기 위해서 아래와 같이 간단하게 비교해서 설명해드리겠습니다.

 

 

=====================================================================

 

using System;

using System.Collections.Generic;

using System.Text;

 

namespace ConsoleApp1

{

    class Class1

    {

 

        static int test1(int a)         // 인스턴스를 선언하지 않고 사용할 수 있는 정적 필드 메소드

        {

 

            int add1 = 10;

 

            Console.WriteLine(a);

            return a + add1;

        }

        string test2(string b)          // 인스턴스를 꼭 선언해서 사용할 수 있는 메소드

        {

            string result = b;

            string add2 = "추가 항목";

 

            Console.WriteLine(result);

 

            return result + add2;

 

        }

 

 

        static void Main(string[] args)

        {

 

            Class1 result1 = new Class1();                      // Class1 클래스를 이용하여, 인스턴스를 선언.

 

            Console.WriteLine("Result 값은 아래와 같습니다.");

 

            Class1.test1(10);          // 인스턴스를 선언하지 않고, Class1으로 바로 test1 메소드 호출.

 

            result1.test2("test");     // Class1 클래스를 이용하여, 선언한 인스턴스를 이용하여 메소드 호출.

 

            Console.WriteLine("return value 까지 같이 출력하고 싶으면 아래와 같습니다.");

 

            Console.WriteLine($"{Class1.test1(10)}");             // 인스턴스를 선언하지 않고, Class1으로 바로 호출.

            Console.WriteLine($"{result1.test2("test")}");        // 인스턴스를 꼭 선언해야 함.

 

 

        }

    }

}

 

=====================================================================

 

- Run을 해보면, 아래와 같이 출력값을 확인 하실 수 있습니다. 여기에서 인스턴스를 사용한 부분과 사용하지 않고, 바로 class에서 호출한 메소드의 사용법을 구별해서 이해하시면 더 도움이 되실 거라고 생각합니다. 저는 처음 공부할 때는 이 부분이 좀 헷갈렸던 부분이였습니다. (이번 Posting 결과값이랑 거의 똑같지만 코드 구성은 틀립니다. 참조하세요)

 

정적-필드-인트턴스-소속-메소드-관련-사진
정적-필드-인트턴스-소속-메소드-관련-사진

이상입니다. class 내에서 선언하는 메소드 이용하는 방법과 타입을 잘 이해를 하면, Main 코드 창에서 호출해서 사용하실 때 정말 편하실 거라고 생각합니다. 요즘 저도 코딩 짤 때 이 부분이 오류를 제일 많이 범하고 있습니다. 그래서 왜 틀렸지라고 자문해보면, 인스턴스 생성하는게 습관이 되서 그런거 같습니다. 이번에도, 제 글이 조금이나 도움이 되셨으면 좋겠네요. 모두가 C# 프로그래머가 되는 그날 까지 화이팅입니다. (이전에 말씀 드렸지만, 하나 하나씩 알아가는게 그것도 하나의 재미인 거 같습니다.)


[저작권이나, 권리를 침해한 사항이 있으면 언제든지 Comment 부탁 드립니다. 검토 후 수정 및 삭제 조치 하도록 하겠습니다. 그리고, 기재되는 내용은 개인적으로 습득한 내용이므로, 혹 오류가 발생할 수 있을 가능성이 있으므로, 기재된 내용은 참조용으로만 봐주시길 바랍니다. 게시물에, 오류가 있을때도, Comment 달아 주시면, 검증 결과를 통해, 수정하도록 하겠습니다.]

728x90

댓글


// 내부링크를 현재창으로 열기 // Open internal links in same tab