문제점 : 빨간색 / 해결방법 : 파란색 / 느낀 점 : 녹색 

C# 윈폼으로 포폴 소개용 툴을 제작 중에 오류이다.

일단 C#문법을 익힐 때 공부했던 내용이다. static클래스는 모든 멤버가 static멤버로 되어 있으며, 클래스 명 앞에 static이라는 키워드를 정의해주고 사용해야한다. 그리고 Static클래스는 public 생성자를 가질 수 없다.  

Static클래스가 생성자를 가질 수 없는 이유는?

static클래스는 객체를 생성할 수 없기 때문이다. 그럼 또 다시 static클래스의 내용을 살펴보면 인스턴스를 생성해서 메서드를 접근하는 방법과 다르게 static클래스로 부터 직접 호출하는 메서드이다. (클래스이름.메서드이름)

인스턴스를 생성하지 않는다?

일반  클래스는 인스턴스를 생성할 때마다 메모리에 매번 새로 생성되는데, static필드는 프로그램 실행 후 해당 클래스가 처음으로 사용될 때 한 번 초기화되어 계속 동일한 메모리를 사용하게된다.

Static생성자를 이용할때는?

주로 static필드들을 초기화 하는데 사용한다.  생성자가 실행되는 시점은?

1) 클래스의 정적필드에 접근하기 직전에 호출된다.

2) 클래스의 인스턴스를 생성하기 직전에 호출된다.

3) 모든 클래스의 정적 생성자는 최초 한번만 호출된다.


처음에 C#문법을 공부할때는 Static클래스,생성자 등 그냥 그런가보다 외우고 이걸 언제 사용할까? 생각했는데 프로젝트를 만들고 오류에 직접 부딪혀보고 해결하다 보니 이해가 된다. 

+ Recent posts