public static CodeLengthInfo findCodeArrayIndexInfo(string code)
{
    CodeLengthInfo info = new CodeLengthInfo();
    List<string> strList = new List<string>();

    for(int kk=0; kk<krxdetailformat.GetLength(0); kk++)
    {
        if(krxdetailformat[kk,0] == code)
        {
            strList.Add(krxdetailformat[kk,9]);
        }
    }
    
    int arraysum = 0;
    info.arrayIndex = new int[strList.Count];

    for(int kk=0; kk<strList.Count; kk++)
    {
        arraysum = arraysum + Convert.ToInt32(strList[kk]);
info.arrayIndex[kk] = Convert.ToInt32(strList[kk]);

    }
    info.arraysum = arraysum;
    info.code = code;

    return info;
}
public struct CodeLengthInfo
{
        public string code;
        public int arraysum;
        public int[] arrayIndex;
}

 

메소드에 static 키워드를 사용하는 이유는 여러 가지가 있습니다. static 메소드는 클래스의 인스턴스(즉, 객체)를 생성하지 않고도 호출할 수 있는 메소드입니다. 아래는 static 메소드를 사용하는 주요 이유들입니다:

  1. 인스턴스와 무관한 기능: static 메소드는 클래스의 인스턴스 상태에 의존하지 않고, 클래스 자체의 상태에만 의존합니다. 위의 findCodeArrayIndexInfo 메소드는 특정 코드에 대한 정보를 찾는 기능을 수행하고 있으며, 이 메소드는 클래스의 인스턴스 상태에 의존하지 않기 때문에 static으로 선언되었습니다. 이는 메소드가 클래스 레벨에서 독립적으로 동작할 수 있음을 의미합니다.
  2. 메모리 절약: static 메소드는 클래스가 메모리에 로드될 때 한 번만 생성되며, 클래스의 모든 인스턴스가 이 메소드를 공유합니다. 이는 메모리 사용을 최적화하는 데 도움이 됩니다. 인스턴스 메소드는 각 객체마다 별도로 존재하지만, static 메소드는 클래스당 하나만 존재합니다.
  3. 유틸리티 메소드: static 메소드는 일반적으로 유틸리티 메소드로 사용됩니다. 유틸리티 메소드는 주로 데이터 변환, 계산 또는 기타 공통 작업을 수행하며, 클래스의 특정 상태나 인스턴스 변수에 접근할 필요가 없습니다. findCodeArrayIndexInfo 메소드도 이러한 유틸리티 메소드의 예로 볼 수 있습니다.
  4. 편리한 접근: static 메소드는 클래스 이름을 통해 직접 호출할 수 있으므로, 객체를 생성하지 않고도 메소드에 접근할 수 있습니다. 예를 들어, MyClass.findCodeArrayIndexInfo(code)처럼 호출할 수 있습니다. 이는 간편하게 메소드를 사용할 수 있는 방법을 제공합니다.
  5. 성능: static 메소드는 객체 생성 비용을 줄이고, 직접 호출할 수 있기 때문에 성능 측면에서 유리할 수 있습니다. 객체를 생성하지 않고도 메소드를 호출할 수 있으므로, 특정 상황에서는 성능 향상을 가져올 수 있습니다.

따라서 findCodeArrayIndexInfo 메소드가 static으로 정의된 이유는 해당 메소드가 특정 인스턴스 상태에 의존하지 않고, 클래스 수준에서 독립적으로 동작하기 때문입니다.

 

+ Recent posts