首页 > 解决方案 > 是否有一个标准库函数可以解析像 C# 文字语法这样的整数?

问题描述

根据https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/builtin-types/integral-numeric-types

整数文字的类型由其后缀确定,如下所示:

如果字面量没有后缀,则它的类型是下列类型中第一个可以表示其值的类型:int、uint、long、ulong。

如果字面量以 U 或 u 为后缀,则它的类型是下列类型中第一个可以表示其值的类型:uint、ulong。

如果字面量以 L 或 l 为后缀,则它的类型是下列类型中第一个可以表示其值的类型:long、ulong。

如果文字以 UL、Ul、uL、ul、LU、Lu、lU 或 lu 为后缀,则其类型为 ulong。

.Net 标准库包含几个函数,用于将字符串解析为具有各种选项的整数。

是否有任何这样的函数将应用上述逻辑,甚至其中的一部分,根据后缀、大小或两者返回几种整数类型之一?

标签: c#.netinteger

解决方案


一个函数只能有一个返回类型,并且由于不同的整数类型实际上是不同的 dotnet 数据类型,所以不可能存在可以返回其中任何一个的单一方法......除非你变得聪明并返回一个复合对象!就像是:

public class CleverReturn
{
    public Object ParsedReturnValue { get; set; }
    public string ParsedReturnValueType { get; set; }
}

'ParsedReturnValueType' 将包含类型的完整命名空间和类型名称。您可以使用它通过反射创建正确类型的变量,并将 ParsedReturnValue 转换为它。但我知道 .NET API 中没有这种方法。


推荐阅读