문제

C# 정적 생성자와 Java 정적 블록의 실제 차이점은 무엇입니까?

둘 다 매개 변수가 없어야합니다. 관련 클래스가 처음 사용될 때 둘 다 한 번만 호출됩니다.

내가 뭔가를 놓치고 있습니까, 아니면 다른 이름 만 가지고 있습니까?

도움이 되었습니까?

해결책

C# 클래스에는 하나의 정적 생성자 (정적 필드 초기화기) 만 가질 수 있다는 점을 제외하고는 동일합니다.

또한 C#에서 a static 생성자가 적용됩니다 beforefieldinit 깃발.

다른 팁

다음 예제는 C# 정적 생성자가 Java의 정적 블록과 동일하게 작동한다는 것을 보여줍니다.

protected Singleton()
{
    Console.WriteLine("Singleton constructor");
}

    private static readonly Singleton INSTANCE;

    static Singleton() {
        try {
           INSTANCE = new Singleton();
        }
        catch(Exception e) {
            throw new Exception();
        }
    }

예, 다른 점은 Java가 정적 생성자를 지원하지 않지만 정적 블록 및 C#을 지원하는 정적 생성자를 지원한다는 것입니다.

그들은 아닙니다.

C#에서는 블록이 생성자 만 보유 할 수 있습니다. Java에서는 진술을 실행할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top