2015-10-13 238 views
0

我正在做一個類,其中我已經使用method.they變量直接在方法paramter.why中聲明,我不能像下面的字符串聲明INT。c#方法聲明變量

class studentinfoget 
{ 
    static void Getstudnetinformation(string firstname, string lastname, string birthday, string address, int cellnumber, int homenumber) 

    { 
     Console.WriteLine("enter your first name"); 
     firstname = Console.ReadLine(); 
     Console.WriteLine("enter your LAST NAME"); 
     lastname = Console.ReadLine(); 
     Console.WriteLine("enter your brithday "); 
     birthday = Console.ReadLine(); 
     Console.WriteLine("enter birthday"); 
     address = Console.ReadLine(); 
     Console.WriteLine("enter address"); 
     cellnumber = Console.ReadLine(); 
     Console.WriteLine("enter adress"); 


    } 

錯誤此代碼是

CS0029 C#無法隱式轉換類型 '字符串' 到 '廉政'

+0

錯誤是因爲,您正在鍵入字符串並嘗試將其分配給int,即cellnumber。您可以在分配前使用tryPrase – Nirmal

+2

您的意思是TryParse() –

+1

此外,您可能不希望將電話號碼存儲爲整數。 (800)555-1212不是一個整數,而是一個字符串。 –

回答

4

您可以使用int.TryParse()將輸入轉換爲整數。

int.TryParse(Console.ReadLine(), out cellnumber); 

然而,如果測試失敗,cellnumber將爲0

一個手機號碼不一定是整數,但 - 你可以有有人進入細胞數爲"XXX-XXX XXXX",也可能有更多超過10位數,在這種情況下,您可能會超過int.MaxValue的2,147,483,647。此外,起始數字可能是0,在存儲時將被剝離,並使電話號碼無效。

在這種情況下,我會建議將該值存儲爲字符串,至少可以保留用戶輸入的格式。

+0

@DrewJordan當我走時,我傾向於建立我的解釋,編輯和重新編輯它直到我快樂。 – user1666620

+0

不用擔心。從我這裏得到+1,這是我現在最好的答案,就我而言。 – DrewJordan

+0

@ user1666620感謝愛你的答案偉大的概念非常感謝:) –

0

您可以使用 cellnumber = Int32.Parse(Console.ReadLine());

,但你應該改變cellnumber and homenumber給字符串變量。

+0

這個答案充其量是令人困惑的......你很好地展示瞭如何解析(儘管TryParse會更好,因爲它只是控制檯輸入),然後你提到使用它們作爲字符串。 – DrewJordan

+0

@DrewJordan我想說的第二部分是他不應該使用int cellnumber而是使用字符串cellnumber –

+0

但*爲什麼*應該使用一個字符串? – DrewJordan

3

cellnumber被聲明爲int,但Console.ReadLine返回string。您需要輸入的文本轉換爲數字:

int.TryParse(Console.ReadLine(), out cellnumber); 

TryParse是用來處理無效的輸入 - 如果用戶輸入Phone或東西是不是數字TryParse不會拋出異常,它將返回false但執行將繼續。

+0

thansk戴夫之間我知道了,(出cellnumber)。out用於什麼目的 –

+0

它使變量作爲參考被傳遞,並且不需要變量被初始化。你可以[在這裏閱讀更多關於它](https://msdn.microsoft.com/en-us/library/ee332485.aspx)。 –

+0

cellnumber = int.Parse(Console.ReadLine());這個代碼也可以像上面的例子一樣工作:)它的權利我也認爲 –