2011-09-23 2 views
3
Console.WriteLine("Enter the page that you would like to set the bookmark on: "); 
    SetBookmarkPage(int.Parse(Console.ReadLine)); 

이 스레드의 항목에 대한 오류 메시지를 표시하는 int.Parse (문자열) 부분입니다. 내가 무엇을해야하는지 정말로 이해하지 못한다. 나는 문자열을 파싱하여 SetBookmarkPage 메서드와 함께 보내고 있는데 무엇이 빠졌는가? SetBookmarkPage은 다음과 같습니다과 같은 클래스에 포함되어 있습니다 :'int.Parse (string)'에 가장 적합한 오버로드 된 메서드에 잘못된 인수가 있습니다.

private void SetBookmarkPage(int newBookmarkPage) {}

+0

한숨 ... 몇 괄호 ... Netbeans처럼 괄호를 완성하지 못해서 피곤함과 VS를 비난합니다. TryParse에 대해 _ < –

답변

2

변경은()는 괄호를 호출해야하는 방법이다 컴파일러는 이것이 메소드 그룹이라고 생각합니다.

2

당신은 Console.ReadLine를 호출해야합니다

SetBookmarkPage(int.Parse(Console.ReadLine()));  

참고 위의 여분의 ()합니다.

현재 메서드가 호출되는 메서드의 결과가 아닌 Console.ReadLine 메서드에서 작성된 대리자를 전달합니다.

사용자가 입력을 읽는다면 int.Parse 대신 int.TryParse을 사용하는 것이 좋습니다. 사용자 입력에 오류가 자주 발생하여 정상적으로 처리 할 수 ​​있습니다.

2

당신이 원하는 : 그것은 방법 그룹Console.ReadLine보기 및 방법 그룹 변환 적용하려고 순간

SetBookmarkPage(int.Parse(Console.ReadLine())); 

- 당신이 다음에 대한 인수로 사용하는 경우 작동을 메소드는 Func<string> 또는 유사한 것을 취하지 만 문자열을 취하는 메소드에는 사용할 수 없습니다.

메서드를 호출하여 메서드를 호출 한 다음 결과를 인수로 전달하십시오. 메서드를 호출하려면 괄호가 필요합니다.

2

는 당신은 아마 의미 :

SetBookmarkPage(int.Parse(Console.ReadLine())); 

공지 사항 괄호를 ReadLine 후. 반환 값 대신 ReadLine에 대한 대리자를 전달하려고합니다. ,

SetBookmarkPage(int.Parse(Console.ReadLine())); 

을 괄호없이 : Console.ReadLine

2

Console.ReadLine

SetBookmarkPage(int.Parse(Console.ReadLine())); 

당신은 실종되었다에

4

대리인을 사용하는 int.Parse의 오버로드가 없습니다. 원한다면 들으실 것 같습니다.

int.Parse(Console.ReadLine()) 

그러나 잠재적 인 예외 상황에 노출 될 수도 있습니다. 당신은 이런 식으로해야합니다 :

int bookmarkId = 0; 
string info = Console.ReadLine(); 

if(!int.TryParse(info, out bookmarkId)) 
    Console.WriteLine("hey buddy, enter a number next time!"); 

SetBookmarkPage(bookmarkId); 
+0

+1> 내 명백한 바보 같은 오류를 지적 해 주셔서 고맙습니다 : 그것은 대량 수입과 전환을 할 때 내 엉덩이를 여러 번 저장했습니다. – rownage

관련 문제