- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace CSA01
- {
- class CSA01
- {
- static void Main(string[] args)
- {
- string line;
- int num1, num2, sum;
- line = Console.ReadLine();
- try
- {
- num1 = int.Parse(line);
- num1 = num1 % 2 == 0 ? num1 : 0;
- }
- catch (FormatException)
- {
- num1 = 0;
- }
- line = Console.ReadLine();
- try
- {
- num2 = int.Parse(line);
- num2 = num2 % 2 == 0 ? num2 : 0;
- }
- catch (FormatException)//字串不符合所需的模式
- {
- num2 = 0;
- }
- sum = num1 + num2;
- Console.Write(sum);
- Console.ReadKey();
- }
- }
- }
複製代碼 /*
比如說
string number1 = "123";
這個number1裡面存放的123,在C#裡其實是文字,所以是不能直接做數學運算的.
所以才會使用Parse和TryParse來先做轉換.
首先以Parse為例
string stringNumber = "123";
int number = int.Parse(stringNumber);
我們使用int.Parse()來將stringNumber轉換為integer再放入number的變數中
其中需要注意的是,Parse如果沒有轉換成功,比如說stringNumber = "123abc",那就無法轉換為整數.
這時Parse會跳Exception導致程式中斷.
所以二者比較建議使用TryParse,因為它會試著轉換,它會視成功與否回傳1或0,我們可以根據回傳值再決定後續處理
例子如下
string stringNumber = "123";
int number = 0;
bool conversionSuccessful = int.TryParse(stringNumber, out number);
if(conversionSuccessful)
{
Console.WriteLine(number);
}
else
{
Console.WriteLine("conversion failed");
}
我們使用int.TryParse()來對stringNumber進行轉換,而out是關鍵字一定要加,number就是轉換成功存放值的地方
所以我們可以根據轉換結果再決定處理方式,也就不會有Exception中斷的問題了.
*/ |