我有一個改變char數組值的小程序。但首先你需要告訴程序哪個數組你想改變一個值;並將新值及其位置寫入該相同陣列位置。程序跳過代碼行
但是,當我輸入數組編號時,程序將跳過允許輸入新值及其位置的代碼行。然後程序在最後拋出一個FormatException。
下面的代碼:
static void addLetters(char[] messageOne, char[] messageTwo)
{
char Mnumber;
char letter;
string pos;
int position;
Console.Write("- Message #: ");
Mnumber = (char)Console.Read();
if (Mnumber == '1')
{
Console.Write("Letter: ");
letter = (char)Console.Read();
Console.Write("\nPosition: ");
pos = Console.ReadLine();
position = Int32.Parse(pos);
messageOne[position - 1] = letter;
}
if (Mnumber == '2')
{
Console.Write("Letter: ");
letter = (char)Console.Read();
Console.Write("\nPosition: ");
pos = Console.ReadLine();
position = Int32.Parse(pos);
messageTwo[position - 1] = letter;
}
}
static void Main(string[] args)
{
char[] array1 = new char[50];
char[] array2 = new char[50];
for (int i = 0; i < 50; i++)
{
array1[i] = '*';
array2[i] = '*';
}
addLetters(array1, array2);
}
}
附:你能告訴我如何讓這段代碼更「優雅」嗎?
告訴我們這行給了一個錯誤。 – Rob
'position = Int32.Parse(pos);'line給出錯誤 – Alex
您可能想使用'TryParse'而不是'Parse'。 – jhmt