C# 如何获取字节数组的类型码?

C# 如何获取字节数组的类型码?,c#,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 TypeCod

我需要告诉未知变量的类型。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"
TypeCode是一个枚举,若并没有表示字节数组的枚举成员,则将得到TypeCode.Object:

反对 一种通用类型,表示任何引用或值类型,而不是由另一个类型代码显式表示

您可能正在寻找,因为它返回:

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

使用返回的类型,您可以依次调用Type.GetTypeCode:

在这里,elementTypeCode将是TypeCode.Byte。

TypeCode是一个枚举,如果没有表示字节数组的枚举成员,您将得到TypeCode.Object,:

反对 一种通用类型,表示任何引用或值类型,而不是由另一个类型代码显式表示

您可能正在寻找,因为它返回:

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

使用返回的类型,您可以依次调用Type.GetTypeCode:

这里,elementTypeCode将是TypeCode.Byte

如果使用的是GetType名称,则可以返回字节[]。如果这是你想要的

如果使用的是GetType名称,则可以返回字节[]。如果这是你想要的

var byteArray = new byte[0];

Type arrayType = byteArray.GetType();
Type elementType =  arrayType.GetElementType();
TypeCode elementTypeCode = Type.GetTypeCode(elementType);
var typeCodeName = bytes.GetType().Name;//Byte[]
var typeCodeFName = bytes.GetType().FullName;//System.Byte[]