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

如何获取可空基元类型数组的元素类型?

获取可空基元类型数组的正确元素类型

可以通过检查元素类型是否为Nullable<T>的实例,来获取其底层的非可空类型,具体实现代码如下:

foreach (var _property in typeof(T).GetProperties())
{ 
    var _propertyType = _property.PropertyType;
    var _propertyName = _property.Name;

    if (_propertyType.IsArray)
    {
        var elementType = _propertyType.GetElementType();
        string UType;
        // 校验是否为可空值类型
        if (elementType.IsGenericType && elementType.GetGenericTypeDefinition() == typeof(Nullable<>))
        {
            var underlyingType = Nullable.GetUnderlyingType(elementType);
            UType = underlyingType?.Name ?? elementType.Name;
            // _null_array 对应的结果为 "Boolean"
        }
        else
        {
            UType = elementType.Name;
            // _array 对应的结果为 "Boolean"
        }
        // 后续逻辑处理
    }
}

核心逻辑说明

  • 先通过IsGenericType判断元素类型是否为泛型类型,再用GetGenericTypeDefinition()确认是否匹配Nullable<>的泛型定义
  • 调用Nullable.GetUnderlyingType()方法直接提取可空类型的底层非可空类型
  • 增加空值判断,避免因异常情况导致的空引用问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 07:31:05