C#/문법 정리

C# - 정적 메소드(static method)

Khadra 2024. 7. 7. 08:12

정적 메소드(Static Method)란?

  • 객체에 사용되는 멤버 메소드와 달리 클래스 자체에 적용되는 메소드이다.
  • 이들은 String.Format()과 같이 클래스 이름인 String 뒤에 '.' 연산자와 함께 사용한다.

String 클래스의 정적 메소드 종류

스태틱 메소드 동작
Concat 한 개 이상의 substring을 합쳐서 새로운 string을 만든다.
Compare 두 개의 string을 비교하여 상대적인 위치에 리턴한다.
Copy 현재 string을 복사하여 새로운 string을 만든다.
Format 문자열을 포맷에 맞추어 변경한다.
Join 배열이나 컬렉션의 멤버들을 모아서 새로운 string을 만든다.
이때 맴버 사이의 구분자를 삽입한다.


예제 코드

using System;
using static System.Console;//Console단어를 생략(코드길이줄어둠)
namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            // string s를 " Hello, World! "로 할당. 앞뒤에 빈칸이 있다.
            string s = " Hello, World! ";


             // String.Concat() 메소드는 정적메소드이다.
             // s.Concat()이 아닌 String.Concat()으로 사용해야 한다.
             // 두 개의 스트링을 합쳐준다.
            WriteLine("String.Concat: " + String.Concat("Hi~",s));   


            // String.Compare() 메소드도 정적메소드이다. 
            // Compare() 메소드와 다르게 String.Compare()와 같이 클래스 이름과 함께 사용한다.
            // "abc"의 'a'값이 빈칸보다 뒤에 나오므로 +1dl 출력된다.
            WriteLine("String.Compare: " + String.Compare("abc", s));


            // Copy() 메소드는 정적메소드이다. 10번째 줄에 선언한 t가 여기에서 사용되어
            //t = String.Copy(s)를 하면 t는 s와 같은 값이 된다.
            WriteLine("String.Copy: " + (t = String.Copy(s)) + "\n");


             // string 배열 val을 선언하고, 초기화한다.
            String[] val = { "apple", "orange", "grape", "pear" };

            // String.Join(",", val)은 string 배열 val의 각 요소를 ","으로 연결하여 리턴한다.
            String result = String.Join(",", val);                
            WriteLine("[] val/String.Join: " + result);           
        }
    }
}

결과

String.Concat: Hi~ Hello, World!
String.Compare: 1
String.Copy: Hello, World!
[] val/String.Join: apple.orange.grape.pear