C#의 정적 생성자

王林
풀어 주다: 2024-09-03 15:12:52
원래의
524명이 탐색했습니다.

C#의 정적 생성자는 클래스에 구현된 정적 멤버에 대한 참조를 생성하는 동안 한 번만 호출되도록 구현된 생성자입니다. 정적 생성자의 기본 기능은 클래스의 정적 멤버를 초기화하고 한 번만 실행하는 것입니다. 이름에서 알 수 있듯이 정적 생성자는 사용자에게 명시적인 제어를 허용하지 않지만 클래스 인스턴스 호출 시 자동으로 실행됩니다. 또한 정적 생성자는 정의에서 매개 변수나 액세스 선언을 사용하지 않습니다. 직접 호출하지 마세요. 정적 생성자는 상속되거나 오버로드될 수 없으며 CLR(공용 언어 런타임)에만 액세스할 수 있습니다.

C#의 정적 생성자의 기능과 용도

다음은 C#의 정적 생성자의 일부 기능과 사용에 대해 자세히 설명합니다.

정적 생성자의 기능

다음 기능은 정적 생성자를 설명합니다.

  • 사용자는 런타임 시 정적 생성자를 제어할 수 없습니다. 이는 미리 컴파일하기 전에 코드에 미리 정의되어 있으며 값은 전체 기간 동안 고정된 상태로 유지됩니다.
  • 정적 생성자 작업은 다시 두 단계, 즉 정적 데이터 멤버 초기화와 정의된 순차적 순서로 발생하는 정적 작업 실행으로 나눌 수 있습니다.
  • 정적 메서드는 정의에 액세스 한정자가 없으므로 프로그램의 다른 구성 요소에서 호출할 수 없습니다.

정적 생성자의 용도

정적 생성자는 각 인스턴스 중에 초기화되는 매개변수 항목을 작성하는 데 사용되는 로그 프로그램에서 주요 용도를 찾습니다. 정적 생성자는 먼저 로드되고 전체적으로 정적으로 유지되므로 데이터베이스 연결을 생성하는 데 이상적인 위치입니다. C# 프로그래밍 언어에서 정적 생성자는 다음 구문을 따릅니다.

구문:

class ABC
{
//defining the static constructor using the same name as class
static ABC()
{
//constructor specific code comes here
}
}
로그인 후 복사

C#에서 정적 생성자는 어떻게 작동하나요?

다음은 C#의 정적 생성자의 몇 가지 기본 작동 원리입니다.

  • 클래스 또는 클래스의 객체가 구조체로 생성되면 클래스와 연결된 데이터 멤버를 생성하기 위해 생성자가 호출됩니다. 이러한 생성자는 클래스와 이름이 동일합니다.
  • 정적 생성자의 개념을 이해하려면 먼저 정적 메서드와 클래스의 개념을 이해해야 합니다.
  • 정적 클래스는 인스턴스화할 수 없다는 점, 즉 클래스의 새 인스턴스를 생성하는 데 new 키워드를 사용할 수 없다는 점에서 일반 클래스와 구별됩니다.
  • 따라서 새 인스턴스를 사용하여 클래스에 액세스할 수 없으며 정적 클래스 이름 자체로 호출해야 합니다. 이러한 클래스는 입력 필드에 대해 작업하고 입력 매개변수의 초기 및 고정 값을 생성하는 데 사용됩니다.
  • 이름에서 알 수 있듯이 정적 생성자는 클래스 생성의 사전 렌더링 단계에서 필요한 정적 데이터를 설정하거나 초기화하는 데 사용됩니다. 정적 생성자는 클래스의 첫 번째 인스턴스가 생성되기 전에 호출되거나 정적 멤버에 대한 참조를 조회합니다.
  • 따라서 정적 생성자를 런타임에 생성되는 클래스의 첫 번째 인스턴스로 정의할 수 있으며 이는 단일 발생 이벤트이며 다시 반복되지 않습니다.

정적 생성자 구현 예

다음은 C#의 정적 생성자의 몇 가지 예입니다.

예시 #1

코드:

using System;
namespace HappyConstructor {
class Happy {
//let us declare and initialise the static data members
private static int id = 7;
public static int Id {
get {
return id;
}
}
public static void printVariable() {
Console.WriteLine("Happy.id = " + id);
}
static void Main(string[] args) {
//let us print the value of ID from the class
Happy. printVariable ();
}
}
}
로그인 후 복사

출력:

C#의 정적 생성자

설명: 위에서는 정적 멤버 ID를 사용하도록 선언하고 초기값인 10으로 초기화합니다.

예시 #2

코드:

using System;
namespace Happy1Constructor {
class Happy1 {
private static int Id;
//data member (id) is set conditionally here to show actions of a Static constructor
static Happy1 () {
if (Happy1.Id < 10) {
Id = 25;
} else {
Id = 1000;
}
Console.WriteLine("Static Constructor for Class Happy Called..");
}
public static void print() {
Console.WriteLine("Happy1.Id = " + Id);
}
public static void Main(string[] args) {
// the value of Id is displayed as
Happy1.print();
}
}
}
로그인 후 복사

출력:

C#의 정적 생성자

설명: 위의 예에서 생성자는 example1에서 생성된 Happy.cs 파일에 조건부로 종속됩니다. 여기서 정적 생성자는 자체적으로 초기화됩니다. 값이 첫 번째 경우 생성된 Id 필드는 7이고 조건 연산자에 따라 필드 값이 10보다 작으면 Happy1 생성자의 Id 필드 값은 25가 됩니다. 이는 전형적인 예입니다. 클래스 로딩의 첫 번째 인스턴스에서 정적 생성자를 초기화하는 것입니다. 정적 생성자는 이 기능을 사용하여 프로그램 참조를 위한 입력 매개변수를 미리 로드합니다.

결론

정적 생성자는 정적 데이터를 초기화하거나 프로그램에 대해 한 번만 수행해야 하는 특정 작업을 수행하는 데 사용됩니다. 이 생성자는 클래스의 개체가 시작되거나 멤버가 런타임 환경에 로드되기 전에 호출됩니다.

위 내용은 C#의 정적 생성자의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿