← C#

LESSON / ARTICLE

nullと入力エラーへの対処

nullの意味、TryParse、例外処理を使って予期しない入力に備えます。

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("数値に変換できません。");
}