본문 바로가기
C#/클래스

응용 프로그램 프로젝트 전역에서 사용하는 정적 클래스 만들어 보기

by edupicker(체르니) 2012. 2. 10.
몇 일 후면 다시 강의여행을 시작하게 되는데 학생들에게 이번에는 무엇을 설명할까 하다가 한 학기 동안 강의할 내용을 Winform 으로 만들어서 소개하면 어떨까? 하는 생각이 들었습니다.
그래서 간단하게 WinForm 12개 정도 사용해서 만들었는데 SQL Server 프로그램의 DLL을 몇 개 사용했는데
학생들이 실습할 환경이 SQL Server 버전 특성을 탈 수 있다는 생각이 들어서 만들어 놓은 프로그램을
정적 클래스를 이용하여 바꿔 만들고 난 후 이런 방법도 상황에 따라서는 이용할 수 있을 것 같아서 올려봅니다.

솔루션 탐색기에서 응용 프로젝트에 12개의 WinForm이 존재하는 그 중 몇 개의 WinForm에서 반복적으로 사용되는 데이터가 존재할 경우, 예를 들어 SQL Server에 존재하는 데이터베이스의 전체 이름 목록을 가져와서 몇 개의 폼들에서 반복적으로 사용해야 할 경우를 들 수 있습니다.

간단하게 정적 클래스를 만들어서 프로젝트 수준에서 문자열 변수를 공통으로 사용하는 방법을 볼까요?
먼저 프로젝트에 클래스를 추가하는 방법은 솔루션 탐색기에서 프로젝트를 선택하여 다음과 같이 클래스를
추가합니다.



그러면 기본적으로 다음과 같이 일반적인 클래스가 생성되어 나타나게 됩니다.

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

namespace willStudy
{
    class Class1
    {
    }
}

1. 정적 클래스 만들기
이러한 기본적인 클래스를 프로젝트 전역에서 사용하기 위해서 앞에 static 키워드를 붙여서 정적 클래스로 만듭니다. 그리고 폼 간에 전달한 데이터가 문자열일 경우는 다음과 같이 클래스의 속성을 이용하여 만들어줍니다.

    static class GlobalClass
    {
        private static string m_globalDBName = "";

        public static string globalDBName
        {
            get { return m_globalDBName; }
            set { m_globalDBName = value; }
        }
    }

2. m_globalDBName의 데이터 저장

  GlobalClass.globalDBName = txtDB.Name.Text;


3. m_globalDBName에 저장된 데이터의 사용

cmbDB.Items.Add(GlobalClass.globalDBName);

위와 같이 필요한 Form에서 "생성한 정적 클래스이름.변수이름"의 형태로 사용하면 됩니다.
이상으로 간단한 정적 클래스를 이용하여 다수의 폼에서 공통적으로 사용되는 데이터에 대한 처리방법을 나타내보았습니다.

끝으로 코드 놀이를 하면서 느끼는 거지만 항상 코드에는 최적해를 찾기는 어렵습니다. 제가 지금 올린 이 팁은 다수의 가능한 접근방법 중 하나일 뿐이라는 것을 말씀드립니다.
그럼 편안한 밤되기를 바랍니다. 즐플~

'C# > 클래스' 카테고리의 다른 글

클래스 소멸자와 GC  (0) 2009.05.07
클래스(Class) 멤버로 접근 제한하기  (0) 2009.05.05
클래스 생성자(Constructor) 알아보기  (0) 2009.05.05
클래스(Class) I  (0) 2009.04.30