重複の可能性:
値型配列を params オブジェクト [] に変換できません
なぜですか
object h = new byte();
可能で、
object[] h = new byte[5];
ではありません?
バイト配列をオブジェクト配列にキャストする方法は?
ありがとう!
重複の可能性:
値型配列を params オブジェクト [] に変換できません
なぜですか
object h = new byte();
可能で、
object[] h = new byte[5];
ではありません?
バイト配列をオブジェクト配列にキャストする方法は?
ありがとう!
最初の例では、単一の値をボックス化しています。
2 番目の例では、配列全体を変換しようとしています。それはうまくいきません。object
配列の各要素はobject
変数です。byte
配列の各要素はbyte
変数です。彼らは表現を共有していません-あなたはそれをすることができません.
たとえば、バイト配列から新しいオブジェクト配列を簡単に作成できます。
object[] objects = bytes.Cast<object>().ToArray();
...しかし、バイト配列をオブジェクト配列のように扱うことはできません。
または、と互換性のあるタイプを使用できます。それは役に立ちますか?System.Array
byte[]
byte[] bytes = ...;
Array array = bytes;
コードで配列をキャストしようとすると、バイト型を保持する配列をオブジェクト型を保持する配列にキャストしているため、キャストは失敗します。配列が保持する型は同じではありません。値型をオブジェクト型にキャストすると、ボックス化されます (ボックス化解除はオブジェクトを値型に変換します)。object h = new byte();
ボクシングです。配列コードでキャストを行うと、それはボクシングではないため、失敗します。