Java 정적 블록은 C# 정적 생성자와 동일합니까?
-
20-09-2019 - |
문제
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에서는 진술을 실행할 수 있습니다.
제휴하지 않습니다 StackOverflow