2014-06-17 1 views
0

저는 최근 C# .NET을 배우기 시작했으며 Visual Studio 2005를 IDE로 사용하고 있습니다. 나는이 코드를 교과서에서 곧바로 복사했다. 그리고 그것은 나에게 아래의 오류를 준다. 내가받은 출력은 다음과 같습니다. 숫자 인수를 입력하십시오. 1 ConsoleApplication1.Program.Main (string []) '이 void를 반환하므로 반환 키워드 뒤에 객체 표현식이 오지 말아야합니다.초급 C# .NET 오류 : args에 길이가없는 이유는 무엇입니까?

using System; 
using System.Collections.Generic; 
using System.Text; 

namespace ConsoleApplication1 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      if(args.Length == 0) 
      { 
       Console.WriteLine("Please enter a numeric argument: "); 
       return 1; 
      } 
     } 
    } 
} 
+0

어떤 버전의 Visual Studio/C#이 책입니까? 그 문제에 관해서, 그것은 어느 책 이었습니까? –

+2

예, 초보자조차도 오류 메시지를 읽어야합니다. "args"와는 관계가 없지만 return 키워드를 사용하는 것은 분명합니다. 그것은 바로 오류 메시지에 말한다. 신경 써서 제발. – TomTom

+0

Eric Butow와 Tommy Ryan이 .NET 응용 프로그램을 작성하기위한 시각적 인 청사진입니다. – user3748214

답변

4

리턴 값이 VOID 인 메소드로 일부 값을 리턴합니다. 공식 사이트 http://msdn.microsoft.com/en-us/library/yah0tteb.aspx에 설명 된대로

: -

When used as the return type for a method, void specifies that the method doesn't return a value.

static int Main(string[] args) 
{ 
    ////Your code 
    return 1; 
} 
5

당신이 Mainvoid으로 표시했기 때문에 이것은 아래로 당신의 방법을 확인하십시오. 즉, return으로 전화하기를 기대합니다. 당신이 당신의 예에서와 같이, 종료 코드를 반환 할 경우에, 당신은 돌아가려면 Main 방법을 변경해야 int :

using System; 
using System.Collections.Generic; 
using System.Text; 

namespace ConsoleApplication1 
{ 
    class Program 
    { 
     // Make this int instead of void 
     static int Main(string[] args) 
     { 
      if(args.Length == 0) 
      { 
       Console.WriteLine("Please enter a numeric argument: "); 
       return 1; 
      } 

      // Default return value 
      return 0; 
     } 
    } 
} 
+0

모든 코드 경로가 값을 반환하지 않기 때문에 컴파일되지 않습니다. return 문은 if 문 외부에 추가되어야합니다. – Kyle

+0

@ 카일 - 당신 말이 맞아요. 나는 급히 서둘러 그것을 게시하지 않았습니다! :-) 나는 기본 반환 값을 추가했다. – Belogix

1

당신은 그냥 메시지를 표시하고 다른 다음 아무것도 그것을해야하지 않는다하려는 경우 be :

using System; 
using System.Collections.Generic; 
using System.Text; 

namespace ConsoleApplication1 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      if(args.Length == 0) 
      { 
       Console.WriteLine("Please enter a numeric argument: "); 
       return; 
      } 
     } 
    } 
} 

반환 후 "1"을 제거하십시오.

+0

사실이 아닙니다. 오류 코드 반환 값이 누락되었습니다. –

+0

그것의 무효 따라서 어떤 값을 반환하지 않으려 고 따라서 당신은 어떤 값으로 돌아갑니다. – Yagzii

+0

일반적으로 -1을 반환하면 오류가 발생합니다. 이전 배치 스크립트에서 많이 사용되었습니다. –

2

이 도서에 대한 리뷰는 http://www.amazon.com/visual-blueprint-building-applications-Software/dp/076453601X에서 찾을 수 있습니다. 그것은 5 점 만점 1.9의 평균 등급을 가지고 있으며, 의견은 다음과 같습니다

I thought it was a beginner book, maybe the pics are but the code [is bad]. Doesn't explain any of the examples very well. Not a very good book.

Wow!!! This book is really badly written.

는 슬프게도, 인용 코드는 다음의 또 다른 예이다. void 메서드는 값을 반환하지 않으므로 mainvoid으로 정의한 다음 값이 완전히 잘못되었습니다.

귀하의 현재 책을 소방관 세트로 재활용 한 다음 교체 할 책을 구입하는 것이 좋습니다.

+2

+1 서평을 확인하는 중! –