C#의 상속 클래스에서 static constructor 호출 문제
3886 단어 Constructor
그중의 예를 들어 다음과 같은 코드가 있다고 가정해 보세요.
using System;
class B
{
static B() { Console.WriteLine("B cctor"); }
public B() { Console.WriteLine("B ctor"); }
public static void M() { Console.WriteLine("B.M"); }
}
class D : B
{
static D() { Console.WriteLine("D cctor"); }
public D() { Console.WriteLine("D ctor"); }
public static void N() { Console.WriteLine("D.N"); }
}
class P
{
static void Main()
{
System.Console.WriteLine("Main");
new D();
}
}
만약main 함수가 이렇다면,
static void Main()
{
D.M();
}
어느 static constructor가 바뀔까요?
답은 B만 옮겨진다는 거예요.
만약main 함수가 이렇다면,
static void Main()
{
D.N();
}
어느 static constructor가 바뀔까요?
답은 D만 옮겨진다는 거예요.
좀 의외인 거 아니야:)
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[Java] 객체지향 프로그래밍 - 생성자App 클래스를 예로 들어 인스턴스 생성하는 과정은 아래와 같아요. 컴파일을 할 때 소스 파일*.java의 클래스가 생성자가 하나도 없다면 컴파일러는 자동적으로 아래와 같은 생성자를 추가해서 컴파일해요. 아무 기능도...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.