2016-09-29 5 views
1

私は未知の変数のタイプを伝える必要があります。 Type.GetTypeCode()は私の目的にとっては十分に良いと思われますが、byte[]の場合、望ましい結果は得られません。ここで バイトの配列のTypeCodeを取得するには?

は私の問題のために単純化されたコードです:

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

// Actual result: typeCode equals Object 
// Desired result (pseudocode): "array of TypeCode.Byte" 

答えて

7

TypeCodeが列挙され、そして与えられた「バイトの配列」を表す無列挙型メンバーはありません、あなたが買ってあげるTypeCode.Objectbecause

オブジェクト
別のTypeCodeで明示的に表されていない参照型または値型を表す一般的な型です。

オブジェクトのタイプが包含されるか、現在の配列によって参照される[...]ことを利用し

:それは返すようおそらく、Type.GetElementType()探している

返されるタイプあなたはその後、順番にType.GetTypeCode()を呼び出すことができます、0123ここで

var byteArray = new byte[0]; 

Type arrayType = byteArray.GetType(); 
Type elementType = arrayType.GetElementType(); 
TypeCode elementTypeCode = Type.GetTypeCode(elementType); 

をはTypeCode.Byteになります。

3
var typeCodeName = bytes.GetType().Name;//Byte[] 
var typeCodeFName = bytes.GetType().FullName;//System.Byte[] 

GetTypeの名前を取っている場合、Byte []を返すことができます。これがあなたが望むものなら。

関連する問題