質問: 0, 効果=3 }; class Program { public static void Main() { 有効無効 a, b, c; Enum.TryParse<有効無効>("無効",out a); Enum.TryParse<有効無効>("有効", out b); Enum.TryParse<有効無効>("False", out c); Console.WriteLine(a); Console.WriteLine(b); Console.WriteLine(c); } } } ``` 考えていた出力内容は Console.WriteLine(a); → True Console.WriteLine(b); → True Console.WriteLine(c); → false だと思っていたのですが実際実行してみると Console.WriteLine(a); → 無効 Console.WriteLine(b); → 有効 Console.WriteLine(c); → 無効 と出力されます。 どこかで考え方が間違ってしまっていると思うのですが どこが間違っているのか正確に理解が出来ていません。 なんとなくですがTryParseで変換が出来たモノ(返り値がTrueになったモノ)がout変数に入れられているんだなあ?くらいしかふんわりとしかわかっていません。 a,b,cというのはどこを示しているのでしょうか?? ご教授よろしくお願いいたします。
回答: 列挙型を`WriteLine()`に渡した場合は名前そのものが出力されます。 名前ではなく値を出力したい場合はキャストするか、`ToString()`で書式指定してください。 列挙型 (C# リファレンス) 列挙型形式文字列 > > なんとなくですがTryParseで変換が出来たモノ(返り値がTrueになったモノ)がout変数に入れられているんだなあ?くらいしかふんわりとしかわかっていません。 > > > ドキュメントを読みましょう。 Enum.TryParse