[C \ #] 콘 솔 프로그램 정적 main 함수 에 대한 간단 한 설명

모두 가 알 고 있 는 바 와 같이 c \ # 컨트롤 러 응용 프로그램의 주요 함 수 는 정적 함수 인 데 왜 비 정적 함수 가 될 수 없 습 니까?분석 은 다음 과 같다. C \ # 콘 솔 에서 Main 이 비정 상 함수 라면 호출 할 때 실례 화 를 해 야 호출 되 고 시스템 이 호출 할 때 직접 호출 되 는 Main 함수 이기 때문에 정적 함수 로 선언 해 야 한다.그럼 Main 함 수 를 다시 불 러 와 서 정적 Main 함수 에서 비정 상 Main 함 수 를 호출 할 수 있 습 니까?실험 은 다음 과 같다. 먼저 어떻게 다시 싣 는 지 생각 하고 먼저 Main 의 형 삼 을 제거 하 자.
static void Main()

컴 파일 통과
형 삼 을 그냥 고치 면
static void Main(int[] args)

컴 파일 에 실 패 했 습 니 다. 서명 을 찾 지 못 했 습 니 다. 즉, 컴 파일 러 가 특정한 Main 함수 성명 을 찾 지 못 해 실 패 했 습 니 다.곰 곰 이 생각해 보 니 다음 코드 는 컴 파일 을 통 해 Main 함 수 를 다시 불 러 옵 니 다. 그러나 입구 Main 함 수 는 정적 입 니 다.
namespace ConsoleApplication1
 
{
 
    class Program3
 
        
 
    {
 
        static int Main()
 
        {
 
            Program3 mya=new Program3();
 
            mya.Main(1);
 
            return 0;
 
        }
 
         int Main(int jjj)
 
        {
 
            Decimal[] myarr = new Decimal[40];
 
            for (int i = 0; i < 40; i++)
 
            {
 
                try
 
                {
 
                    Console.Write("      [{0}]     :",i+1);
 
                    Decimal temp = Convert.ToDecimal(Console.ReadLine());
 
                    if (temp <= 100 && temp >= 0)
 
                    {
 
                        myarr[i] = temp;
 
                    }
 
                    else if (temp==-1)
 
                    {
 
                        return 0;
 
                    }
 
                    else
 
                    {
 
                        Console.WriteLine("==========
, ![ \"-1\" ]
"); i = i - 1; } } catch (Exception ex) { Console.WriteLine("==========
, ![ \"-1\" ]
"); i = i - 1; } } return 0; } } }

이 코드 를 통 해 생각 한 문제: 메모 리 를 낭비 하 시 겠 습 니까?분석 은 다음 과 같다. 시스템 이 콘 솔 프로그램 을 다시 호출 할 때 이미 예화 되 었 지만 코드 에서 그 자 체 를 예화 했다. 즉, 그 자체 가 자신 을 예화 시 켜 메모리 의 낭 비 를 초래 했다 는 것 이다.해결 하고 싶 은 문제: 어떻게 콘 솔 정적 Main 함수 에서 완전히 벗 어 날 수 있 습 니까?(PS: 자기가 컴 파 일 러 를 해 야 가능 할 것 같 아...) PS2: 아까 그 거 생각 나 면 먼저 적어 두 고 선생님 께 서 책 을 추천 하 셨 어 요. 컴 파 일 러 를 직접 쓰 라 고 하 셨 어 요. 그 안에 정규 표현 식 에 관 한 연구 가 가득 해 요.PS3:. NET 은 delphi 를 하 는 사람 이 만 들 었 다 고 들 었 습 니 다. 그리고 많은 언어 를 그 가 썼 다 고 들 었 습 니 다. 숭배 ing ~ 실력 이 있 으 면 직접 쓰 세 요 ~ ~

좋은 웹페이지 즐겨찾기