gpt4 book ai didi

c# - 从类型名称获取可空类型

转载 作者:太空宇宙 更新时间:2023-11-03 18:54:25 25 4
gpt4 key购买 nike

我有以下场景,我得到一个如下所示的字符串

"System.DateTime?"

"int?"

我希望能够做的是检索该字符串的 System.Type,如下所示:

{Name = "Nullable1" FullName = "System.Nullable1[[System.DateTime, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]"}

现在我知道如何从字符串中检索类型,在处理不可为空的类型或 typeof(DateTime?) 当我知道它将是 DateTime 可为 null 时,但在这种情况下我不知道什么可为 null 类型可能会通过并且只会将其作为字符串接收。

最佳答案

我遗漏了部分上下文 - 例如,字符串是否始终表示可为 null 的值类型?

鉴于您可以从字符串中提取值类型名称并创建对该类型的引用:

var valueType = Type.GetType("System.DateTime");
var nullableType = typeof(Nullable<>).MakeGenericType(valueType);

这应该可以解决部分问题。较难的部分是根据字符串确定基础类型,这取决于您接收的输入类型。从 System.DateTime 获取类型很容易,但从 int 获取类型就难了。 This answer可能对这部分有帮助。


就输入而言 - 是否有任何选项可以向用户提供可用选项列表,以便您收到的输入始终是有效的类型名称?这将否定任何这些的需要。然后你可以做 Type.GetType(stringWithTypeName)

关于c# - 从类型名称获取可空类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48773455/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com