nullと入力エラーへの対処
プログラムでは、値が存在しない状態や、入力を正しく変換できない状態を扱う必要があります。
null
null は、参照型の変数がオブジェクトを参照していない状態を表します。
string? name = Console.ReadLine();
if (name is null)
{
Console.WriteLine("入力がありません。");
}
else
{
Console.WriteLine(name);
}
string? は、nullになる可能性がある文字列を表します。nullの可能性がある値を使う前に、確認する習慣を付けましょう。
null合体演算子
?? は、左側がnullなら右側の値を使います。
string? input = Console.ReadLine();
string text = input ?? "";
Console.WriteLine(text);
?. は、左側がnullでない場合にだけメンバーへアクセスします。
数値変換の失敗
ユーザー入力や外部データが必ず正しいとは限りません。TryParse を使うと、変換できたかどうかを戻り値で確認できます。
string? input = Console.ReadLine();
if (int.TryParse(input, out int number))
{
Console.WriteLine(number * 2);
}
else
{
Console.WriteLine("整数ではありません。");
}
例外処理
例外は、通常の処理では続けられない状況を表します。必要な場所で try と catch を使って処理できます。
try
{
int value = int.Parse("123");
Console.WriteLine(value);
}
catch (FormatException)
{
Console.WriteLine("数値に変換できません。");
}