You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#如何将字符串"y"解析为布尔值true 附问题代码排查

问题根因

你的代码运行报错的核心问题是对bool.Parse()的用法存在误解:

  • 该方法仅支持解析格式为"True"/"False"(不区分大小写)的标准布尔字符串,传入"y"/"n"这类自定义字符时会直接抛出格式转换异常,根本无法完成你预期的转换逻辑。
正确实现代码

不需要强行调用布尔解析方法,直接根据输入的字符串判断后给布尔变量赋值即可,以下是兼容用户输入冗余空格、大小写差异的可用版本:

using System;

public class Demo
{
    public static void Main()
    {
        Console.WriteLine("请输入y:");
        // 预处理输入:去除首尾空白、统一转小写,规避用户误输入大写Y、前后带空格的问题
        string answer = Console.ReadLine().Trim().ToLower();
        bool inputY;

        if (answer == "y")
        {
            inputY = true;
            Console.WriteLine("你已将布尔值'True'存入名为'inputY'的布尔变量中");
        }
        else if (answer == "n")
        {
            inputY = false;
            Console.WriteLine("你已将布尔值'False'存入名为'inputY'的布尔变量中");
        }
        else
        {
            Console.WriteLine("输入无效,请输入y或n");
        }
    }
}

如果追求更简洁的写法,也可以直接用三元表达式完成赋值:

// 输入为y时赋值true,其余输入默认赋值false,适合仅判断确认场景
bool inputY = answer == "y";
注意事项
  • 所有.NET内置的布尔类型解析方法(bool.Parse、bool.TryParse)都不支持识别"y"/"n"这类自定义值,不要在这类场景下调用
  • 处理控制台用户输入时,建议统一做去空格、大小写归一化处理,减少用户误输入导致的逻辑异常

内容的提问来源于stack exchange,提问作者Asbjoedt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 19:51:19