gpt4 book ai didi

c# - 如何确定 .NET 类型是否为自定义结构?

转载 作者:太空狗 更新时间:2023-10-29 20:53:39 25 4
gpt4 key购买 nike

<分区>

如何编写一个简单的方法来检查具体类型是否为自定义结构(使用 public struct { }; 创建)。

检查 Type.IsValueType 是不够的,因为它也适用于 intlong 等,并向 !IsPrimitiveType 添加检查不会排除 decimalDateTime 和可能的其他一些值类型。我知道大多数内置值类型实际上是“结构”,但我只想检查“自定义结构”

这些问题大多相同,但没有我需要的答案:

编辑:从提到的答案中,“检查‘系统’前缀”是最稳定的(尽管它仍然是一种 hack)。我最终决定创建一个属性,您必须用它来装饰结构,以便框架将其作为自定义结构来获取。 (我想到的另一种选择是创建一个空接口(interface),让结构体实现那个空接口(interface),但属性方式似乎更优雅)

如果有人感兴趣,这是我原来的自定义结构检查器:

type.IsValueType && !type.IsPrimitive && !type.Namespace.StartsWith("System") && !type.IsEnum

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