如何获取字节数组的TypeCode?

Xav*_*eña 1 c#

我需要告诉未知变量的类型.Type.GetTypeCode()对我的目的而言似乎已经足够好了,但是在byte[]它没有提供所需结果的情况下.

这是我的问题的简化代码:

var bytes = new byte[10];
var typeCode = Type.GetTypeCode(bytes.GetType());

// Actual result: typeCode equals Object
// Desired result (pseudocode): "array of TypeCode.Byte"
Run Code Online (Sandbox Code Playgroud)

Cod*_*ter 7

TypeCode是一个枚举,如果没有枚举成员代表"字节数组",你会得到TypeCode.Object,因为:

Object
表示未由另一个TypeCode显式表示的任何引用或值类型的常规类型.

您可能正在寻找Type.GetElementType(),因为它返回:

当前数组包含或引用的对象类型[...]

使用返回的Type然后您可以调用Type.GetTypeCode():

var byteArray = new byte[0];

Type arrayType = byteArray.GetType();
Type elementType =  arrayType.GetElementType();
TypeCode elementTypeCode = Type.GetTypeCode(elementType);
Run Code Online (Sandbox Code Playgroud)

在这里,elementTypeCode将是TypeCode.Byte.