首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

带有空格的枚举.TryParse不工作- C#

枚举.TryParse不工作是指在C#编程语言中,使用枚举类型的TryParse方法时出现问题。枚举类型是一种特殊的数据类型,用于定义一组命名的常量值。TryParse方法用于将字符串转换为枚举类型的值,并返回一个布尔值,指示转换是否成功。

当枚举.TryParse方法不工作时,可能有以下几种原因和解决方法:

  1. 错误的字符串格式:枚举.TryParse方法要求传入的字符串与枚举类型的定义相匹配。如果传入的字符串不是有效的枚举值,TryParse方法将返回false。解决方法是确保传入的字符串与枚举类型定义中的枚举值名称相匹配。
  2. 不区分大小写:枚举.TryParse方法默认是区分大小写的。如果传入的字符串与枚举值的大小写不匹配,TryParse方法将返回false。解决方法是使用StringComparison.OrdinalIgnoreCase参数来进行不区分大小写的比较。
  3. 枚举类型定义错误:如果枚举类型的定义有误,例如枚举值的重复或者定义了无效的枚举值,TryParse方法可能无法正常工作。解决方法是检查枚举类型的定义,确保没有重复的枚举值,并且所有的枚举值都是有效的。
  4. 异常处理:在使用枚举.TryParse方法时,应该使用try-catch语句来捕获可能的异常。例如,如果传入的字符串为null或者空字符串,TryParse方法将抛出ArgumentNullException或者ArgumentException异常。解决方法是使用try-catch语句来捕获并处理这些异常。

腾讯云相关产品和产品介绍链接地址: 腾讯云提供了丰富的云计算产品和服务,包括云服务器、云数据库、云存储、人工智能等。以下是一些相关产品和介绍链接地址:

  1. 云服务器(ECS):提供弹性计算能力,支持多种操作系统和应用场景。了解更多:https://cloud.tencent.com/product/cvm
  2. 云数据库(CDB):提供高可用、可扩展的数据库服务,支持MySQL、SQL Server等多种数据库引擎。了解更多:https://cloud.tencent.com/product/cdb
  3. 云存储(COS):提供安全可靠的对象存储服务,适用于图片、视频、文档等各种类型的数据存储。了解更多:https://cloud.tencent.com/product/cos
  4. 人工智能(AI):提供丰富的人工智能服务,包括图像识别、语音识别、自然语言处理等。了解更多:https://cloud.tencent.com/product/ai

请注意,以上链接仅为示例,具体的产品和服务介绍请参考腾讯云官方网站。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

《CLR via C#》笔记:第3部分 基本类型(2)

数组内部工作原理 固定大小数组 第十五章 枚举类型和位标志 枚举类型 枚举类型(enumerated type)定义了一组“符号名称/值”配对。...它从System.Enum直接派生,枚举类型是值类型,但枚举方法不能定义任何方法、属性或事件。(P320 2)C#编译器将枚举类型视为基元类型。所以可用许多熟悉操作符(==,!...枚举类型实例 Enum.TryParse ("1", false, out c); //创建值为23color枚举类型实例 Enum.TryParse ("23", false...(P336 3) 数组传递和返回 Array.Copy:浅拷贝(对引用类型直接传递回引用对象)(P337 4) 创建下限非零数组 推荐使用捏。...(P338 2) 数组内部工作原理 CLR内部支持两种不同额数组:1、下限为0一维数组。

78510

编写高质量代码改善C#程序157个建议

TryParse转换失败返回false,将其赋值为0 TryParse和Parse两者都执行成功,那么TryParse性能要比Parse性能稍微好一点,但是如果抛出异常,那么TryParse性能比...在C#中,值被取出来后,为了将它赋值给int类型,不得不首先判断一下它是否为null。如果将null直接赋值给int类型,会引发异常。   ...建议7、将0值设为枚举默认值  允许使用枚举类型有byte、sbyte、short、ushort、int、uint、long、ulong、应该始终将0值作为枚举默认值。...所以建议将0设置为枚举默认值。 建议8、避免给枚举类型元素提供显式值  一般情况下,没有必要给枚举类型元素提供显式值。创建枚举理由之一,就是为了代替使用实际值。...不正确枚举类型元素设定显式值,会带来意想不到错误。

46350
  • 编写高质量代码:改善C#程序157个建议

    编写高质量代码:改善C#程序157个建议 2014-12-13 张子阳 推荐: 4 难度: 3 ? 这本书汇集了C#编写中一些建议、注意事项和小技巧,为了温故知新,又拿出来翻看了一遍。...总是使用TryParse,不使用Parse 恰当使用Nullable类型 如果数据库字段可为null,那么对应C#实体类属性也应当可以为null。使用int?...将0作为枚举默认值 枚举要么全部显式赋值,要么全部不要赋值 个人建议全部显式赋值,因为很多时候是将枚举值存在数据库当中,如果不显示赋值,那么当在枚举项中间插入一个值时候,后面的值会全部改变。...因为枚举值默认是+1累进。...深度复制和浅度复制 使用dynamic简化反射实现 效率可以提高很多。 集合和LINQ 元素数量固定使用数组;固定使用List。

    2.5K30

    C#笔记2 —常量

    常量可以是任何基本数据类型,比如整数常量、浮点常量、字符常量或者字符串常量,还有枚举常量。 常量可以被当作常规变量,只是它们值在定义后不能被修改。...字符串常量包含字符与字符常量相似,可以是:普通字符、转义序列和通用字符 使用字符串常量时,可以把一个很长行拆成多个行,可以使用空格分隔各个部分。 这里是一些字符串常量实例。...file.txt string i = "one\r\ntwo\r\nthree"; string j = @"one //说明可以换行 two three"; 然后c#...关于常量变量命名规则: 带有 private 私有访问修饰符常量通常要以骆驼命名法命名,即以下划线开头,第一个单词首字母小写,余下单词首字母大写。...private const string _bookName = "新华字典"; 带有 public 公共修饰符、protected 受保护修饰符等常量要以帕斯卡命名法命名,即各个单词首字母都要大写

    1.3K20

    C# TextBox 扩展方法数据验证

    扩展方法是一种特殊静态方法,但可以像扩展类型上实例方法一样进行调用。 对于用 C# 和 Visual Basic 编写客户端代码,调用扩展方法与调用在类型中实际定义方法之间没有明显差异。...GetMethod()方法,必须传入合适参数(要反射方法签名)来确定方法唯一,例如碰到重载这种情况(比较常见),否则返回值为null,方法签名中,若参数带有ref 或out 关键字,则Type类型需要加上...方法参数中带有ref和out关键字,获得该值通过参数数组来获得。如本例中:parameters[1]     3....定义转换失败操作委托       C#内置封装委托有两种,Action和Func委托,并有很多重载版本,参数可以有十多个,所以不用担心参数问题。...,为什么一个对象后面带一个参数,其实C#编译器为我们做了很多工作,在这里实质为faild.Invoke(textBox),这样看还好理解委托是个类型,通过faild委托对象来调用该委托所注册方法。

    1.1K10

    精:C#这些年来受欢迎特性

    命名可选参数实至名归,尽管这是一个非常简单特性,其实用性却很高。我就想问,谁没有写过重载或者带有可选参数方法? 当您编写可选参数时,您必须为其提供一个默认值。...假设我们有一个带有 GetData 方法仓储。...这种机制在透明异步状态机中代以使用暂停点和相应延续方式。 同样,如果 CPU 负载计算工作量很大,则可能需要考虑异步执行此项工作。...在定义了一个遵循 try-parse 模式私有委托之后,我们可以编写一个泛型复合方法,它可以传递泛型类型参数、字符串和 tryparse 泛型委托。...并非每一种特性对于手头工作来说都是必要,但了解什么是可用是很有必要

    16630

    C# 这些年来受欢迎特性

    命名可选参数实至名归,尽管这是一个非常简单特性,其实用性却很高。我就想问,谁没有写过重载或者带有可选参数方法? 当您编写可选参数时,您必须为其提供一个默认值。...假设我们有一个带有 GetData 方法仓储。...这种机制在透明异步状态机中代以使用暂停点和相应延续方式。 同样,如果 CPU 负载计算工作量很大,则可能需要考虑异步执行此项工作。...在定义了一个遵循 try-parse 模式私有委托之后,我们可以编写一个泛型复合方法,它可以传递泛型类型参数、字符串和 tryparse 泛型委托。...并非每一种特性对于手头工作来说都是必要,但了解什么是可用是很有必要

    18520

    C#进阶-反射详解与应用

    通过反射,我们能够获取并打印出这些字段公有或私有信息。④ 使用BindingFlags枚举BindingFlags枚举用于指定控制反射绑定和搜索方式。...Console.WriteLine($"Private Field: {field.Name}"); } }}通过这个例子,我们可以看到BindingFlags枚举在使用反射进行成员访问时强大能力...这在处理插件或者需要大量反射框架时尤其有用。在方法反射应用中,除了简单地调用方法之外,还可以用于更复杂场景,如调用带有不同参数方法、访问私有方法或者调用泛型方法等。...这种方法特别有用,因为它允许在运行时决定泛型方法类型参数,从而提高了代码灵活性和通用性。④ 调用带有输出参数方法有时候,你可能需要调用方法包含输出(out)参数。...四、反射总结反射是C#中一个非常强大特性是C#高级编程中不可或缺一部分,了解和掌握反射使用可以帮助开发者编写更加灵活和强大.NET应用程序。

    24831

    C# 数据类型转换 显式转型、隐式转型、强制转型

    C# 类型转换有 显式转型 和 隐式转型 两种方式。 显式转型:有可能引发异常、精确度丢失及其他问题转换方式。需要使用手段进行转换操作。...c#char值是基于Unicode。通过Unicode,任意字符都可以解释成数字。...第三,[Type].TryParse() 格式如下 int.TryParse() float.TryParse() ... ... .TryParse() 与 .Parse()  相似,但是使用形式不太一样..., [类型].TryParse(要更改字符串,out 存储到哪个变量);  最重要不同点在于, .TryParse()  在转换失败时,不会引发异常,而是返回 flase 例子 string...str = "666"; int i; int.TryParse(str,out i);    //接收转换结果   如果你不知道 out 使用,请查阅 C#out

    90730

    带你了解C#每个版本新特性

    提到迭代器,有两个概念需要了解 可枚举对象和枚举器,实现了System.Collections.IEnumerable接口对象是可枚举对象,这些对象可以被C#foreach进行迭代; 实现了System.Collections.IEnumeror...接口对象被称为枚举器。...动态类型 C#使用dynamic来实现动态类型,在没用使用dynamic地方,C#依然是静态。...: int result = 0; int.TryParse("20", out result); Console.WriteLine(result); 优化后代码,不需要事先定义一个变量 int.TryParse...推断元组元素名称(7.1) 非尾随命名参数(7.2) 数值文字中前导下划线(7.2) 条件 ref 表达式(7.2) 总结 每个特性都需要我们去编码实现下,了解了真正含义和用途,我们才能在工作中灵活运用

    3.5K20

    C#基础03

    C#基础03 枚举 作用:可以限制用户输入,并且可以提供提示信息。防止了用户随意输入,输入时只需要选择相应值。具有统一性。 注意:枚举类型值不能取int型值。...枚举类型实例化对象都可强制转换为int型(每个枚举值都存在一个默认编号从0开始)。在定义枚举类型时,可以通过 值=编号 来定义枚举编号(使其不一定从零开始)。...重点:如何把字符串转换成枚举类型 程序代码实现: (自定义枚举类型)(Enum.Parse(typeof(自定义枚举类型),“待转换字符串”)); 结构体 可以存储一组类型不同信息(甚至包括方法...常量:const a = 1; 用于一些不可随意更改枚举: 限制用户输入,限制在枚举类型值得范围内 结构体: 可看成一种类,包含变量,方法。...如果,参数是以out 形式传入,那么在传入前可以赋初值。但是在方法内对形参必须赋初值。 一定意义上,可以理解成在方法内部定义变量赋初值不是在定义时赋值而是在调用方法内部赋初值。

    14310

    C# 正则表达式大全「建议收藏」

    , RegexOptions options); 第一种重载参数表示:输入、模式 第二种重载参数表示:输入、模式、RegexOptions枚举“按位或”组合。...表示去掉模式中非转义空白,并启用由#标记注释 Multiline表示多行模式,改变元字符^和$含义,它们可以匹配行开头和结尾 None表示无设置,此枚举项没有意义 RightToLeft...该名称空间包括8个类,1个枚举,1个委托。...:提供编译器用于将正则表达式编译为独立程序集信息 RegexOptions 提供用于设置正则表达式枚举值 Regex类中还包含一些静态方法: Escape: 对字符串中regex中转义符进行转义...,单个域长度超过63,完整域名全长超过256个字符。

    1.6K10

    CSharp基础知识3-循环语句

    第九课: for循环: 1、一到一百和:  class Program     {         static void Main(string[] args)         {            ...            {                 sum = sum + i;             }             Console.WriteLine("一到一百和是...Console.WriteLine();             }                 Console.ReadLine();         }     } 有一个不好,就是空格对不准运行一看就知道了...int.TryParse(num, out resu))             {                 Console.WriteLine("输入错误!...           }                 Console.ReadLine();         }     } 说明:Enum.GetNames(typeof(ConsoleColor))可以把枚举类型转换为

    56310

    C#7.0 新增功能

    现在可以在方法调用参数列表中声明 out 变量,而不是编写单独声明语句: if (int.TryParse(input, out int result)) Console.WriteLine...02 元组 C# 为用于说明设计意图类和结构提供了丰富语法。 但是,这种丰富语法有时会需要额外工作,但益处却很少。 你可能经常编写需要包含多个数据元素简单结构方法。...因为那将禁止类似 ref int i = sequence.Count(); 这样语句 不能将 ref 返回给其生存期超出方法执行变量。 这意味着不可返回对本地变量或对类似作用域变量引用。...在迭代器方法中,只有在调用枚举返回序列代码时才会观察到任何异常。 在异步方法中,只有当返回 Task 处于等待状态时才会观察到任何异常。...,以确保在异步工作开始之前引发由参数验证引起异常: 1 public Task PerformLongRunningWork(string address, int index,

    1.4K10

    C# 规范整理·语言要素

    as操作符永远不会抛出异常,如果类型匹配(被转换对象运行时类型既不是所转换目标类型,也不是其派生类型),或者转型源对象为null,那么转型之后值也为null。...如果涉及基元类型算法,就需要通过is转型前类型来进行判断,以避免转型失败。 4、TryParse比Parse好 这个肯定好,不说了。安全 5、使用int?...即在初始化时候。 7、将0值作为枚举默认值 允许使用枚举类型有byte、sbyte、short、ushort、int、uint、long和ulong。应该始终将0值作为枚举类型默认值。...不过,这样做不是因为允许使用枚举类型在声明时默认值是0值,而是有工程上意义。 既然枚举类型从0开始,这样可以避免一个星期多出来一个0值。 8、避免给枚举类型元素提供显式值 不要给枚举设定值。...dynamic出现让C#具有了弱语言类型特性。编译器在编译时候不再对类型进行检查,编译器默认dynamic对象支持开发者想要任何特性。

    20850

    int32.parse什么意思_integer.parseint和valueof

    大家好,又见面了,我是你们朋友全栈君。 Int32.Parse, Convert.ToInt32,Int32.TryParse三者区别 Int32....(string, out int) This method is available in C# 2.0 and above....它将指定字符串转化为out变量,如果成功转换则返回true。当参数是null引用时,返回0,而不是像前两个方法一样抛出ArgumentNullException 。...如果不想碰到异常,就使用Int32.TryParse。 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,拥有所有权,承担相关法律责任。...如发现本站有涉嫌侵权/违法违规内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

    55530

    C# 规范整理:15个知识点!

    as操作符永远不会抛出异常,如果类型匹配(被转换对象运行时类型既不是所转换目标类型,也不是其派生类型),或者转型源对象为null,那么转型之后值也为null。...如果涉及基元类型算法,就需要通过is转型前类型来进行判断,以避免转型失败。 4、TryParse比Parse好 这个肯定好,不说了。安全 5、使用int?...即在初始化时候。 7、将0值作为枚举默认值 允许使用枚举类型有byte、sbyte、short、ushort、int、uint、long和ulong。应该始终将0值作为枚举类型默认值。...不过,这样做不是因为允许使用枚举类型在声明时默认值是0值,而是有工程上意义。 既然枚举类型从0开始,这样可以避免一个星期多出来一个0值。 8、避免给枚举类型元素提供显式值 不要给枚举设定值。...dynamic出现让C#具有了弱语言类型特性。编译器在编译时候不再对类型进行检查,编译器默认dynamic对象支持开发者想要任何特性。

    17110
    领券