2014-07-04 3 views
-2

프로그램을 작성하려고하는데 프로그램에서 행을 읽으려고합니다. 그것은 나에게 암시 적으로 형식 '문자열을'변환 할 수 없습니다이 오류암시 적으로 'string'유형을 'int'로 변환 할 수 없습니다.

을주고있다

'

가 어떻게 문자열을 int로 변환 할 수 있습니다 int로? 이것은 오류를 제공하는 프로그램의 일부입니다.

class engineering : faculty 
{ 
    public engineering() \\constructor 
    { 
    } 
    public int maths_grade; 

    public override void fill_form() 
    { 
     Console.WriteLine("Insert Maths Grades: "); 
     int maths_grade = Console.ReadLine(); 
    } 
} 
+1

을보십시오. 당신은 그것을 변환해야합니다. 'int maths_grade = Convert.ToInt32 (Console.ReadLine());'또는'int.TryParse' 또는'int.Parse'를 사용하여 구문 분석하십시오. ** [캐스트 및 형식 변환 (C# 프로그래밍 가이드)] (http://msdn.microsoft.com/en-us/library/ms173105.aspx) ** – Habib

+1

콘솔의 ReadLine() 반환 값은 문자열입니다 . maths_grade의 값을 문자열로 설정하려고합니다. (그러나 maths_grade는 int로 정의됩니다!) 따라서 문자열을 int로 변환하려면 Convert.ToInt32 (stringComesHere) 또는 아래의 답변에서 다른 방법을 사용할 수 있습니다. –

+3

프로그래밍에 익숙하지 않은 경우 Stackoverflow에 질문을하기 전에 얻은 오류를 검색하는 방법을 배워야합니다 (실제로 시간을 절약 할 수 있다고 생각합니다). 제목에 따라 706,000 개의 결과를 찾는 [google] (http://www.google.se)을 추천 할 수 있습니다. [string to int] 검색 (https://www.google.com/search?q=convert+string+to+int+c%23&oq=convert+string+to+&aqs=chrome.3.57j0j5j0j62j60.6910j0&sourceid= chrome & ie = UTF-8)는 1 750,000의 결과를 제공합니다. 당신의 선택을 받아들입니다 – Default

답변

0

당신은 사용해야

int maths_grade = int.Parse(Console.ReadLine()); 

string 반환 ReadLine 때문에, 당신은 int을 파싱해야합니다. 그러나 행에 유효한 문자열 (숫자)이 포함되지 않으면 예외가 발생합니다. 당신은 더 나은 TryParse 버전을 사용하여이 문제를 확인할 수 있습니다

string line = Console.ReadLine(); 
int maths_grade; 
if (!int.TryParse(line, out maths_grade)) 
{ 
    // Do some kind of error handling 
} 
+2

@DarrenYoung, 나는 당신의 코멘트 바로 뒤에 그것을 추가했습니다 –

0

당신은 int로 문자열을 할당 할 수 없습니다

int mathsGrade; 
if (int.TryParse(Console.ReadLine(), out mathsGrade)) 
{ 
    //Do something with grade 
} 
else 
{ 
    //Do something to warn of invalid input. 
} 
+0

왜 이것이 downvoted 되었습니까? 그것은 아주 합리적인 접근법입니까? –

+3

나는 누군가가 첫 번째 대답과 같은 응답을 downvoting 것으로 의심합니다 ... 누구든지이 일을 중지해야합니다. – Sayse

관련 문제