我需要告诉未知变量的类型.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)
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.
| 归档时间: |
|
| 查看次数: |
1332 次 |
| 最近记录: |