私はこのようなことをしたい -
using System;
class MainClass
{
public static void Main ()
{
bool? input;
Console.WriteLine ("Are you Major?");
input = bool.Parse (Console.ReadLine ());
IsMajor (input);
}
public static void IsMajor (bool? Answer)
{
if (Answer == true) {
Console.WriteLine ("You are a major");
} else if (Answer == false) {
Console.WriteLine ("You are not a major");
} else {
Console.WriteLine ("No answer given");
}
}
}
ここで、ユーザーが何も答えずに単に Enter キーを押した場合、変数入力は値null
を格納し、出力は でなければなりませんNo answer given
。
私のコードでは、true
との入力は正常に機能しfalse
ています。
ただし、入力が指定されずにEnterキーが押された場合、コンパイラは例外をスローします
System.FormatExeption has been thrown
String was not recognized as a valid Boolean
したがってnull
、変数に格納された値を取得input
して、出力がNo answer given
ここ、
質問文字列は有効なブール値 C# として認識されませんでした
キーボードから直接null入力を取りたくないので、明らかに重複していません。また、そのような入力を取得できない場合、null 許容型のユーティリティは何ですか?回避策もありますか?